Страница 1 из 2

Текстовые сообщения SIP/SIMPLE в Asterisk

Добавлено: 23 мар 2015, 09:46
ab1984
Дорогие пользователи форума, я столкнулся с такой проблемой и хотел бы узнать можно ли решить её или нет.

Пользователи у меня хранятся в базе данных MySQL и логинятся как sip:username@domain.com. У каждого пользователя в экстеншене есть свой номер по которому и идёт дозвон.

Проблема заключается в следующем, при попытке послать текстовое сообщение выдаёт следующее:

Код: Выделить всё

[Mar 23 08:32:53] WARNING[32730][C-00000000]: chan_sip.c:6012 create_addr: Purely numeric hostname (8322008631), and not a peer--rejecting!
    -- Auto fallthrough, channel 'Message/ast_msg_queue' status is 'UNKNOWN'
  == Using SIP VIDEO CoS mark 6
  == Using SIP RTP CoS mark 5
Если логин для пользователей указать цыфровой как и номер телефона то текстовые сообщения проходят нормально. Я бы хотел узнать можно ли это как-то обойти?

Настраивал я это дело так
В файле sip.conf добавил следующие строчки

Код: Выделить всё

accept_outofcall_message = yes
outofcall_message_context = messages
auth_message_requests = no
В файле extensions.conf добавил следующие строчки

Код: Выделить всё

[messages]
exten => _XXXXXXXXXX,1,MessageSend(sip:${EXTEN},"${CALLERID(name)}"${MESSAGE(from)})
В этом и есть загвоздка, тоесть текствое сообщение отсылается на extension: 8322008631 который принадлежит пользователю SIP/alexander, Но пользователя sip:8322008631 нету этот пользователь является sip:alexander. Вот как можно обойти это дело что-бы текстовое сообщение отсылалась на номер и уже передовалось пользователю sip:alexander

Буду очень благодарен если кто сможет мне в этом помочь разобраться. А то уже перерыл весь интернет и ничего не смог найти, пробывал уже и подставлять просто sip:alexander в место sip:${EXTEN} тогда приходят сообщение этому пользователю но от пользователя asterisk.

Re: Текстовые сообщения SIP/SIMPLE в Asterisk

Добавлено: 23 мар 2015, 10:39
ded
Вам надо, согласно вашей схемы, добавлять
[messages]
exten => alexander,1,MessageSend(sip:8322008631,"${CALLERID(name)}"${MESSAGE(from)})
к имеющимся шаблонам
exten => _XXXXXXXXXX,1,MessageSend(sip:${EXTEN},"${CALLERID(name)}"${MESSAGE(from)})

Re: Текстовые сообщения SIP/SIMPLE в Asterisk

Добавлено: 23 мар 2015, 12:59
ab1984
Огромное спасибо за направление...

Только принцып немного другой получился

Код: Выделить всё

exten => 8322008631,1,MessageSend(sip:alexander,"${CALLERID(name)}"${MESSAGE(from)})
;к имеющимся шаблонам
exten => _XXXXXXXXXX,1,MessageSend(sip:${EXTEN},"${CALLERID(name)}"${MESSAGE(from)})
Теперь проблемка немног в другом, сообщение приходит но ${CALLERID(name)} не отображается и тексотвое сообщение приходит уже не от номера 8322008631 а отдельным сообщением от пользователя alexander.
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: in-elite*CLI> sip show peer alexander
* Name : alexander
Description :
Realtime peer: Yes, cached
Secret : <Set>
MD5Secret : <Not set>
Remote Secret: <Not set>
Context : Local
Record On feature : automon
Record Off feature : automon
Subscr.Cont. : status
Language : ru
Tonezone : <Not set>
AMA flags : Unknown
Transfer mode: open
CallingPres : Presentation Allowed, Not Screened
FromDomain : in-elite.com Port 5060
Callgroup :
Pickupgroup :
Named Callgr :
Nam. Pickupgr:
MOH Suggest : newmoh
Mailbox : 8322008631
VM Extension : *98
LastMsgsSent : 0/0
Call limit : 0
Max forwards : 0
Dynamic : Yes
Callerid : "" <8322008631>
MaxCallBR : 384 kbps
Expire : -1
Insecure : noo
Force rport : Yes
Symmetric RTP: Yes
ACL : No
DirectMedACL : No
T.38 support : Yes
T.38 EC mode : FEC
T.38 MaxDtgrm: 4294967295
DirectMedia : Yes
PromiscRedir : No
User=Phone : Yes
Video Support: Yes
Text Support : Yes
Ign SDP ver : No
Trust RPID : No
Send RPID : Yes
TrustIDOutbnd: Legacy
Subscriptions: Yes
Overlap dial : Yes
DTMFmode : rfc2833
Timer T1 : 500
Timer B : 32000
ToHost :
Addr->IP : 192.168.0.106:1024
Defaddr->IP : (null)
Prim.Transp. : UDP
Allowed.Trsp : UDP
Def. Username:
SIP Options : (none)
Codecs : (gsm|ulaw|alaw|speex|ilbc|h263|h263p|h264)
Codec Order : (speex:20,ilbc:30,ulaw:20,alaw:20,gsm:20,h264:0,h263:0,h263p:0)
Auto-Framing : No
Status : OK (87 ms)
Useragent : VimphoneAndroid/1.0.
Reg. Contact : sip:alexander@192.168.0.106:1024;line=d435acc490aa611
Qualify Freq : 60000 ms
Keepalive : 0 ms
Sess-Timers : Accept
Sess-Refresh : uas
Sess-Expires : 1800 secs
Min-Sess : 90 secs
RTP Engine : asterisk
Parkinglot :
Use Reason : No
Encryption : No

Re: Текстовые сообщения SIP/SIMPLE в Asterisk

Добавлено: 23 мар 2015, 13:29
ded
Я не совсем представляю что хочется получить в конце концов. Что Сергей послал месседж Александру?
Вставляйте проверку
exten => 8322008631,1,NoOp(Caller ID is ${CALERID(all)}
exten => 8322008631,n,MessageSend(sip:alexander,"${CALLERID(name)}"${MESSAGE(from)})
и анализируйте. Я уверен, что Вы справитесь.

Re: Текстовые сообщения SIP/SIMPLE в Asterisk [SOLVED]

Добавлено: 23 мар 2015, 13:40
ab1984
Спасибо. Кажись дошло, необходимо только разобраться с Caller ID вот он почему-то и не отображается... :-(

Код: Выделить всё

-- Executing [8322008631@messages:1] NoOp("Message/ast_msg_queue", "Caller ID is ")
    -- Executing [8322008631@messages:2] MessageSend("Message/ast_msg_queue", "sip:alexander,""<sip:alexander@in-elite.com>")
    -- Auto fallthrough, channel 'Message/ast_msg_queue' status is 'UNKNOWN'
Огромное спасибо за помощь.... Буду дальше ковырять может что-то и на рою почему этот Caller ID не отображается

Re: Текстовые сообщения SIP/SIMPLE в Asterisk

Добавлено: 23 мар 2015, 14:00
ab1984
Все решил проблему, теперь всё приходит от кого надо единственное не удобство это всех прописывать в базе данных

Решение такое:

Код: Выделить всё

exten => 8322008631,1,MessageSend(sip:alexander,"8322008631"<sip:${EXTEN}@in-elite.com>)
Ну и так дальше всех пользователей...

Re: Текстовые сообщения SIP/SIMPLE в Asterisk

Добавлено: 23 мар 2015, 14:08
ded
Я скобку не дописал.
exten => 8322008631,1,NoOp(Caller ID is ${CALERID(all)})

Re: Текстовые сообщения SIP/SIMPLE в Asterisk

Добавлено: 23 мар 2015, 16:02
ab1984
В итоге я никак не могу добиться такого результата, что-бы отображался правильный Caller ID и номер экстеншена который отправляет это сообщение :-(
Получается следующее:

Код: Выделить всё

    -- Executing [8322008632@messages:1] MessageSend("Message/ast_msg_queue", "sip:irina,""<sip:alexander@in-elite.com>")
    -- Auto fallthrough, channel 'Message/ast_msg_queue' status is 'UNKNOWN'
а для того что бы получатель мог получить сообщение должно быть так

Код: Выделить всё

    -- Executing [8322008632@messages:1] MessageSend("Message/ast_msg_queue", "sip:irina,"номер отправителя"<sip:номер отправителя@in-elite.com>")
    -- Auto fallthrough, channel 'Message/ast_msg_queue' status is 'UNKNOWN'
Если кто знает в чём может быть косяк буду признателен, заранее огромное спасибо

Re: Текстовые сообщения SIP/SIMPLE в Asterisk

Добавлено: 24 мар 2015, 09:25
Wapo
Поиграйтесь с двойными и одинарными кавычками.

Re: Текстовые сообщения SIP/SIMPLE в Asterisk

Добавлено: 24 мар 2015, 10:29
ab1984
Да не помогло, проблема заключается в следующем ${CALLERID(all)} возвращает пустое значение "" <>, хотя при звонках на другие экстеншены CALLERID высвечивает Имя абонента и номер.

Код: Выделить всё

[Mar 24 09:20:11] WARNING[28139]: sip/config_parser.c:812 sip_parse_nat_option: nat=yes is deprecated, use nat=force_rport,comedia instead
    -- Executing [8322008631@messages:1] MessageSend("Message/ast_msg_queue", "sip:alexander,'"" <>'"alexander" <sip:alexander@in-elite.com>")
    -- Auto fallthrough, channel 'Message/ast_msg_queue' status is 'UNKNOWN'
Хотя самое интересное что когда я просматриваю пользователя то там есть Caller ID
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: in-elite*CLI> sip show peer alexander
* Name : alexander
Description :
Realtime peer: Yes, cached
Secret : <Set>
MD5Secret : <Not set>
Remote Secret: <Not set>
Context : Local
Record On feature : automon
Record Off feature : automon
Subscr.Cont. : status
Language : ru
Tonezone : <Not set>
AMA flags : Unknown
Transfer mode: open
CallingPres : Presentation Allowed, Not Screened
FromDomain : in-elite.com Port 5060
Callgroup :
Pickupgroup :
Named Callgr :
Nam. Pickupgr:
MOH Suggest : newmoh
Mailbox : 8322008631
VM Extension : *98
LastMsgsSent : 32767/65535
Call limit : 0
Max forwards : 0
Dynamic : Yes
Callerid : "Aleksandrs Bogdanovs" <8322008631>
MaxCallBR : 384 kbps
Expire : 3467
Insecure : no
Force rport : Yes
Symmetric RTP: Yes
ACL : No
DirectMedACL : No
T.38 support : Yes
T.38 EC mode : FEC
T.38 MaxDtgrm: 4294967295
DirectMedia : Yes
PromiscRedir : No
User=Phone : Yes
Video Support: Yes
Text Support : Yes
Ign SDP ver : No
Trust RPID : Yes
Send RPID : Yes
TrustIDOutbnd: Legacy
Subscriptions: Yes
Overlap dial : Yes
DTMFmode : rfc2833
Timer T1 : 500
Timer B : 32000
ToHost :
Addr->IP : 192.168.0.106:1024
Defaddr->IP : (null)
Prim.Transp. : UDP
Allowed.Trsp : UDP
Def. Username: alexander
SIP Options : (none)
Codecs : (gsm|ulaw|alaw|speex|ilbc|h263|h263p|h264)
Codec Order : (speex:20,ilbc:30,ulaw:20,alaw:20,gsm:20,h264:0,h263:0,h263p:0)
Auto-Framing : No
Status : OK (531 ms)
Useragent : VimphoneAndroid/1.0.8 (eXosip2/3.6.0)
Reg. Contact : sip:alexander@192.168.0.106:1024;line=f0b4283b515963e
Qualify Freq : 60000 ms
Keepalive : 0 ms
Sess-Timers : Accept
Sess-Refresh : uas
Sess-Expires : 1800 secs
Min-Sess : 90 secs
RTP Engine : asterisk
Parkinglot :
Use Reason : No
Encryption : No