День добрый. Имеется Elastix, настроенный на провайдера, к которому идут 3 транка - один для исходящих, с авторизацией и два для входящих, без авторизации. имеем: sip_additional.conf
[896]
deny=0.0.0.0/0.0.0.0
secret=*****
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
type=friend
nat=yes
port=5060
qualify=yes
callgroup=
pickupgroup=
dial=SIP/896
mailbox=896@default
permit=0.0.0.0/0.0.0.0
callerid=device <896>
callcounter=yes
faxdetect=no
[from-trunk]
type=user
context=from-trunk
[prov_in5]
host=192.168.55.5
type=peer
insecure=port,invite
canreinvite=no
qualify=yes
context=from-trunk-sip-prov_in5
[prov_in6]
host=192.168.55.6
type=peer
insecure=port,invite
canreinvite=no
qualify=yes
context=from-trunk-sip-prov_in6
[prov_out]
host=192.168.55.2
username=*******
secret=*******
type=peer
insecure=port,invite
context=from-trunk-sip-prov_out
sip_registrations.conf
register=username:userpass@192.168.55.2
При настройке входящего маршрута при DID/CID = ANY/ANY - все работает, звонки попадают, при звонке на любой из выделенного пула номеров на тестовый экстеншн. Когда же в качестве DID указывается какой-то конкретный номер - астериск выдает сообщение о невозможности дозвона. Судя по логам, провайдер не передает в DID-номер, как я полагаю. Так ли это и чем можно подобное победить?
Вот лог:
В случае указания конкретного DID:
-- Executing [s@from-trunk-sip-provin6:1] Set("SIP/provin6-00000019", "GROUP()=OUT3") in new stack -- Executing [s@from-trunk-sip-provin6:2] Goto("SIP/provin6-00000019", "from-trunk,s,1") in new stack -- Goto (from-trunk,s,1) -- Executing [s@from-trunk:1] NoOp("SIP/provin6-00000019", "No DID or CID Match") in new stack -- Executing [s@from-trunk:2] Answer("SIP/provin6-00000019", "") in new stack -- Executing [s@from-trunk:3] Wait("SIP/provin6-00000019", "2") in new stack -- Executing [s@from-trunk:4] Playback("SIP/prov_in6-00000019", "ss-noservice") in new stack
В случае, если конкретное значение DID не указывается:
-- Executing [s@from-trunk-sip-provin6:1] Set("SIP/provin6-0000001a", "GROUP()=OUT3") in new stack -- Executing [s@from-trunk-sip-provin6:2] Goto("SIP/provin6-0000001a", "from-trunk,s,1") in new stack -- Goto (from-trunk,s,1) -- Executing [s@from-trunk:1] Set("SIP/provin6-0000001a", "_FROMDID=s") in new stack
Чтобы пир , на который приходит звонок , принимался с нужным DID номером , то нужно добавить этот номер в строку регистрации.
register=username:userpass@192.168.55.2/DID
читаете
http://asterisk-support.ru/question/38386/kak-poniat-chto-proiskhodit-na-asteriske/
делаете сип дебаг. звоните на разные номера. если invite отличаются, то с помощью магии sipheader() можно чтото вытащить. иначе - менять провайдера или смирится.
Задан: 2012-12-05 15:21:34 +0400
Просмотрен: 4,888 раз
Обновлен: Dec 05 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Сам мучаюсь с GSM шлюзом, DID он не передает, а разрулить входящие как-то надо =(
zavulon ( 2012-12-05 15:52:50 +0400 )редактировать"Чтобы пир , на который приходит звонок , принимался с нужным DID номером , то нужно добавить этот номер в строку регистрации.
register=username:userpass@192.168.55.2/DID" - номеров в пуле 99. Указание одного из них в приведенном выше примере проблему не решает. Более того, регистрируемся мы в транке, через который звонки уходят в мир, получаем входящие с двух, без регистрации.
nikolasmd ( 2012-12-05 17:09:57 +0400 )редактироватьК провайдеру с этим комментарием.
zzuz ( 2012-12-05 17:27:54 +0400 )редактировать