Проблема принятия звонков от устройства при переадресации
Добавлено: 10 сен 2013, 17:54
Довольно не тривиальная проблема, но может кто подскажет как ее решить
Астериск работает нормаль
В нем заведено 2 абонента
1. 60001
2. 60002
Заведен транк на внешнее устройство
Устройство (сервис) имеет возможность вернуть звонок (переадресовать) на номер 60001
Но тут вот и возникает проблема. Дело в том, что обратный вызов делает сам сервис и есть две возможности, подставить номер самой системы или номер абонента, который в систему звонил.
И так при наборе 71001 с номера 60002, звонок уходит на сервис, там после манипуляций с донабором можно набрать номер 60001.
В первом случае, когда звонит сам сервис и в поле from значение 71001@.... то звонок номеру 60001 доходит
А в случае если подставлять значение звонящего сервис в поле from вставляет 60002@..... и звонок не доходит, астериск отбивает по 401.
В общем ничего не понятного нет, так по идее и должно быть, если не учитывать в настройках транка параметров
Поведение дурное и глупое но вот я ни как не соображу, что с этим делать....
Вот параметры 60002
Может быть тут надо что то подправить, но по идее астериск все равно найдет этого абонента, а я не могу ему присвоить IP. он же динамический.... и никак не IP транка к системе.
Может быть кто то сталкивался с такой проблемой, и как то ее решил, поиск в гугл ничего толкового не дал, правда я мог и не то искать.
Астериск работает нормаль
В нем заведено 2 абонента
1. 60001
2. 60002
Заведен транк на внешнее устройство
Весь набор на номера 7XXXX идет в этот транкhost=11.17.54.6
type=peer
qualify=yes
insecure=port,invite
disallow=all
nat=no
allow=ulaw&alaw
Устройство (сервис) имеет возможность вернуть звонок (переадресовать) на номер 60001
Но тут вот и возникает проблема. Дело в том, что обратный вызов делает сам сервис и есть две возможности, подставить номер самой системы или номер абонента, который в систему звонил.
И так при наборе 71001 с номера 60002, звонок уходит на сервис, там после манипуляций с донабором можно набрать номер 60001.
В первом случае, когда звонит сам сервис и в поле from значение 71001@.... то звонок номеру 60001 доходит
А в случае если подставлять значение звонящего сервис в поле from вставляет 60002@..... и звонок не доходит, астериск отбивает по 401.
В общем ничего не понятного нет, так по идее и должно быть, если не учитывать в настройках транка параметров
Которые не должны давать астериску запрашивать авторизацию. Но сам астериск, просто так поступает от природыhost=11.17.54.6
type=peer
insecure=port,invite
То есть если он видит в поле from 60002, то просто не принимает дальше условий insecure=port,invite на транке....Сопоставление входящих вызовов с клиентами и пирами
Обычно, Asterisk ищет подходящего SIP клиента, при поступлении входящего вызова, по полю From: username (без доменной части). Однако, если Asterisk не смог найти подходящего пользователя для поступившего вызова, то он будет использовать IP адрес звонящего для поиска подходящего SIP пира с соответствующим адресом. Если же и после этого нет совпадений, тогда вызов будет отправлен на обработку в контекст, определенный в секции [general] файла sip.conf.
Поведение дурное и глупое но вот я ни как не соображу, что с этим делать....
Вот параметры 60002
Код: Выделить всё
[60002]
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/60002
mailbox=60002@device
permit=0.0.0.0/0.0.0.0
callerid=device <60002>
callcounter=yes
faxdetect=no
Может быть кто то сталкивался с такой проблемой, и как то ее решил, поиск в гугл ничего толкового не дал, правда я мог и не то искать.