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

Проблема с входящими вызовами

Добавлено: 06 фев 2015, 12:41
merc
Есть связка Ubuntu 14+Asterisk 11+Asterisk Gui 2.1
Внутренняя маршрутизация идёт через Cisco SPA8000, для внешних вызовов подключено 2 SIP канала на мегафоновском мультифоне.
Соответсвенно регистрация в sip.conf:
[general]
...
register = логин1:пароль1@мультифон.ру/1111
register= логин2:пароль2@мультифон.ру/2222

[multifon1]
dtmfmode=auto
username=логин1
type=peer
secret=пароль1
host=sbc.megafon.ru
fromuser=логин1
fromdomain=multifon.ru
port=5060
nat=force_rport
insecure=port,invite

[multifon2]
dtmfmode=auto
username=логин2
type=peer
secret=пароль2
host=sbc.megafon.ru
fromuser=логин2
fromdomain=multifon.ru
port=5060
nat=force_rport
insecure=port,invite
context=public

extensions.conf
[public]
exten=1111,1,NoOp(к нам по 1 линии звонит : ${CALLERID(num)} )
exten=1111,2,Goto(voicemenus,1111,1)
exten=2222,1,NoOp(к нам по 2 линии звонит : ${CALLERID(num)} )
exten=2222,2,Goto(voicemenus,2222,1)

Дальше звонки уходят на голосовое меню и всё хорошо. Проблема в следующем, время от времени становится невозможно дозвониться по первой линии, в консоль выкидывает ошибку что не найден экстеншен s в public. Обычно перезапуск астериска или перезагрузка sip.conf исправляет эту проблему, но со временем ошибка опять проявляется. Так же звонящего переключает на какое-то левой войсменю(в контексте default нет вообще ничего, как вариант это происходит из-за asterisk-gui и астер подгружает другое войсменю из extensions.ael (наткнулся недавно на такое объяснение в посте Ded'a в одной из тем), почему так происходит?

Re: Проблема с входящими вызовами

Добавлено: 06 фев 2015, 18:53
ded
У вас
на пире [multifon2] есть
context=public
а на пире [multifon1] вообщен никакого контекста не указано, отсюда
exten=1111 выполняется в контексте public, а
exten=2222,1,NoOp(к нам по 2 линии звонит : ${CALLERID(num)} )
не выполняется, точнее - выполняется где ему заблагорассудится.
И это всё видно просто при просмотре прохождения вызова в CLI.

Что заставляет Вас писать в форум?

Re: Проблема с входящими вызовами

Добавлено: 09 фев 2015, 09:07
merc
Проблема в том, что exten=2222 выполняется, только если звонить на вторую линию, а я звоню на первую, и проблема с ней.
Для multifon2 прописан public, потому что он вообще не хотел выполнятся(как раз таки ругался на отсутствии экстеншна в public'е), для multifon1 по дефолту сразу идёт в public, хоть контекст и не задан

Re: Проблема с входящими вызовами

Добавлено: 09 фев 2015, 13:13
merc
Попутно возник ещё вопрос:
Насколько я понял, строка регистрации,а в частности всё что идёт после / в register = логин1:пароль1@мультифон.ру/1111 определяет, что все входящие с линии, будут передаваться в 1111 экстеншн, в связи с этим собственно вопрос, почему в консоль сыплются ворнинги call from логин1 to extension 's' rejected because extension not found in context 'public'. При всём этом, явление это не постоянное и проявляется не при каждом звонке

Re: Проблема с входящими вызовами

Добавлено: 10 фев 2015, 08:13
virus_net
ded писал(а):И это всё видно просто при просмотре прохождения вызова в CLI.
смотрелось ?
А так же:

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

CLI> dialplan show 1111@public

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

CLI> sip set debug ip IP_ADDRESS
после чего можно будет осознать что именно приходит и почему так

Re: Проблема с входящими вызовами

Добавлено: 11 фев 2015, 11:35
merc
отключил в модулях PBX_ael, разбил входящие линии на 2 разных контекста, пока вроде работает( видимо потому, что теперь есть обработка экстеншена s), непонятно только почему мультифон время от времени слал мне входящий номер вместо 1111 (видимо игнорируя строку регистрации)

Re: Проблема с входящими вызовами

Добавлено: 17 фев 2015, 11:09
merc
Напрасно предположил, что все работает( возможность отключить второй SIP-канал от старого сервера и проверить работоспособность обоих сразу бывает не часто в силу частых вызовов), проблема в том что:
Для каждого канала в SIP.conf прописан контекст, как я понимаю вся адресация входящих вызовов будет происходить через этот контекст, но входящий звонок со второй линии всё равно уходит через контекст первой. Почему так происходит?
Конфиги файлов:

sip.conf

[multifon1]
dtmfmode=auto
username=логин1
type=peer
secret=пароль1
host=sbc.megafon.ru
fromuser=логин1
fromdomain=multifon.ru
port=5060
nat=force_rport
insecure=port,invite
context=incoming_1


[multifon2]
dtmfmode=auto
username=логин2
type=peer
secret=пароль2
host=sbc.megafon.ru
fromuser=логин2
fromdomain=multifon.ru
port=5060
nat=force_rport
insecure=port,invite
context=incoming_2

extensions.conf
[incoming_1]
exten=s,1,Goto(public,11,1)
[incoming_2]
exten=s,1,Goto(public,22,1)

[public]
exten=11,1,NoOp(к нам по 1 линии звонит : ${CALLERID(num)} )
exten=11,2,Goto(voicemenus,11,1)
exten=22,1,NoOp(к нам по 2 линии звонит : ${CALLERID(num)} )
exten=22,2,Goto(voicemenus,22,1)

В консоли при вызове на оба номера я вижу
Using SIP RTP CoS mark 5
-- Executing [s@incoming_1:1] Goto("SIP/multifon-1-00000000", "public,11,1") in new stack
-- Goto (public,11,1)
-- Executing [11@public:1] NoOp("SIP/multifon-1-00000000", " к нам по 1 линии звонит‚ : номерзвонящего ") in new stack
-- Executing [11@public:2] Goto("SIP/multifon-1-00000000", "voicemenus,11,1") in new stack

Есть ли другой вариант обрабатывать входящие вызовы с двух каналов и переадресовывать их соответственно на нужные номера?

Re: Проблема с входящими вызовами

Добавлено: 17 фев 2015, 11:22
Wapo
Тысяча раз обсуждалось везде - сервер отправки ОДИН и ТОТ ЖЕ. Нельзя в таком режиме ожидать разные контексты, а рулить по DID

Re: Проблема с входящими вызовами

Добавлено: 17 фев 2015, 11:28
ded
Нет никаких двух каналов. Две регистрации с этого сервера (и более) Мультифон видит как одну, ибо ИП адрес и порт с которого прибегают регистрации не меняются. Для него это информация что вызовы на 1111 и на 2222 пересылать на этот ИП адрес и порт. Таким образом в разные контексты вы принять не можете. У freePBX один контекст для всех входящих - from-trunk/
Чтобы разделять на стороне Астериска входящие используют DID - direct inward dial (number), номер назначения, для этого надо чтобы регистрация каждого номера имела в конце
register => 1111user:1111pass@multifon.ru/1111
register => 2222user:2222pass@multifon.ru/2222
тогда прибегающий вызов никогда не будет иметь destination s и конструкции
exten=s,1,Goto(public,11,1)
не будут иметь смысла.

Re: Проблема с входящими вызовами

Добавлено: 17 фев 2015, 12:30
merc
Благодарю за подробный ответ, изначально регистрация и была в таком формате, но были тоже косяки в работе