ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Некорректно определяется входящая линия на одном IP

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Некорректно определяется входящая линия на одном IP

Сообщение Makioro » 09 фев 2018, 16:35

Здравствуйте! Мне двадцать лет, я бородат, живу с мамой, тролль, лжец и девственник. Вот и сейчас... P.S. Извените за неровный почерк.
Не смог даже придумать по каким словам поиск по форуму делать и даже нормально описать проблему в заголовке, за что прошу прощения.

Постараюсь развёрнуто описать проблему
Есть какой-то сервер, к которому мы подключаемся несколько раз для получения нескольких SIP линий. Это может быть GSM-шлюз на несколько сим-карт или облачная АТС от Укртелекома, суть общая: IP один, а учёток несколько.
Вот пример конфигурации при подключении к локальному GSM-шлюзу:
[Показать] Спойлер: sip.conf
[general]
limitonpeer=yes
register => gsm11:pass@172.16.0.51/0678хxxxxx
register => gsm12:pass@172.16.0.51/0990хxxxxx
register => gsm13:pass@172.16.0.51/0960хxxxxx
register => gsm14:pass@172.16.0.51/0630хxxxxx

context=incoming_fxo
language=ru
allowguest=no ;do not allow anonymous calls
alwaysauthreject=yes ;do not say whether wrong password or username
nat=force_rport,comedia

[mobiles](!)
type=friend
dtmfmode=rfc2833
disallow=all
allow=gsm
allow=ulaw
insecure=invite
deny=0.0.0.0/0.0.0.0
permit=172.16.0.51/32
callcounter=yes
nat=no
host=172.16.0.51

[gsm11](mobiles)
fromuser=gsm11
secret=pass1

[gsm12](mobiles)
fromuser=gsm12
secret=pass2

[gsm13](mobiles)
fromuser=gsm13
secret=pass3

[gsm14](mobiles)
fromuser=gsm14
secret=pass4

Сервер астериск некорректно работает с этими линиями, что выражается в нескольких глюках
1) При входящем звонке с любой линии они все отображаются как gsm11
2) Игнорируется контекст, отличный от контекста gsm11. Т.е. если прописать в [gsm11] другой контекст, а в других оставить по-умолчанию, то все будут с таким же, как gsm11. Если прописать в любую другую линию другой контекст, то всё равно будет incoming_fxo - контекст gsm11.
3) Проблема с выбором линии для исходящего звонка (главная проблема, которая сподвигла обратиться к сообществу): использую конструкцию
[Показать] Спойлер: Выдержка из extensions.conf
same => n,gotoif($["${DEVICE_STATE(${OUT_GSM13})}" = "NOT_INUSE"]?:try2)
same => n,Dial(${OUT_GSM13}/${EXTEN})
same => n,Congestion()
same => n,Hangup()
same => n(try2),gotoif($["${DEVICE_STATE(${OUT_GSM14})}" = "NOT_INUSE"]?:try3)
same => n,Dial(${OUT_GSM14}/${EXTEN})
same => n,Congestion()
same => n,Hangup()

(до этого пробовал проверку статуса звонка gotoif($[ ${DIALSTATUS}=CHANUNAVAIL ]?line4), а не линии, как выше, но тоже некорректно работает)
И тут я не уверен в своих выводах, но вероятно происходит что-то такое: gsm13 занят исходящим, приходит входящий звонок на gsm12 (но астериск думает что занята gsm11 - первая), при попытке позвонить система видит что gsm13 занят исходящим, проверяет gsm12 - он типа свободен, пытается позвонить - отбой, т.к. она на самом деле занята.

Можно ли как-то по-другому настроить SIP? Может лучше будет на IAX2? Или может по-другому можно выбирать исходящую линию? Может есть какое-то частное решение для GSM-шлюза Openvox? (для УТ некритично - там звонков очень мало)
Заранее благодарен за ответы
Makioro
 
Сообщений: 21
Зарегистрирован: 22 сен 2016, 13:11

Re: Некорректно определяется входящая линия на одном IP

Сообщение zzuz » 09 фев 2018, 16:48

Так работает потому, что insecure=invite . Попробуйте регистрировать ваши пиры через callbackextension вместо register .
Линия24 - Системы Массового Телефонного Обслуживания
Аватар пользователя
zzuz
 
Сообщений: 1658
Зарегистрирован: 21 сен 2010, 13:33

Re: Некорректно определяется входящая линия на одном IP

Сообщение ded » 09 фев 2018, 18:00

... или просто указывая на пирах
host=dynamic
ded
 
Сообщений: 15805
Зарегистрирован: 26 авг 2010, 19:00

Re: Некорректно определяется входящая линия на одном IP

Сообщение Makioro » 09 фев 2018, 19:46

zzuz писал(а):Так работает потому, что insecure=invite . Попробуйте регистрировать ваши пиры через callbackextension вместо register .

Не уверен что понял совет. Типа так, без "register => ..." в [general]?
[Показать] Спойлер:
[mobiles](!)
type=friend
dtmfmode=rfc2833
disallow=all
allow=gsm
allow=ulaw
insecure=invite
deny=0.0.0.0/0.0.0.0
permit=172.16.0.51/32
callcounter=yes
nat=no
host=172.16.0.51

[gsm11](mobiles)
fromuser=gsm11
callbackextension=0678xxxxxx

Но эта опция callbackextension у меня есть в конце "register => ..../0678xxxxxx". Проблемы с определением экстеншена для входящего звонка нет, проблема именно с выбором линии для исхода
Спасибо, попробую позже

ded писал(а):... или просто указывая на пирах
host=dynamic

Попробовал сейчас просто заменить host=172.16.0.51 на host=dynamic и перестали работать входящие звонки. При попытке позвонить на шлюз в логах появлялись сообщения
Код: выделить все
[Feb  9 17:37:37] NOTICE[100459][C-00004d3d]: chan_sip.c:25566 handle_request_invite: Failed to authenticate device "+38097XXXXXXX" <sip:+38097XXXXXXX@172.16.0.52>;tag=as2542cbc3
[Feb  9 17:37:43] NOTICE[100459][C-00004d3e]: chan_sip.c:25566 handle_request_invite: Failed to authenticate device "38097XXXXXXX" <sip:38097XXXXXXX@172.16.0.51>;tag=as162937d7
где 38097XXXXXXX - номер звонящего
Или что-то ещё надо было делать помимо изменения хоста на dynamic?
Makioro
 
Сообщений: 21
Зарегистрирован: 22 сен 2016, 13:11

Re: Некорректно определяется входящая линия на одном IP

Сообщение ded » 09 фев 2018, 21:01

Что-то сделать ещё? Например почитать Книгу о вкусной и здоровой пище. Или ещё какую нибудь.
без "register => ..." в [general]?
Знаете что такое register => ..." в [general]? Это приказ Астериску зарегистрироваться как клиент где-то на другом Астериске (другой станции). Шлюз - не станция, поэтому не Астериску на нём, а ему на Астериске надо регистрироваться.

Невозможно одно и то же пропесочивать на форуме каждому новичку, который пытается увязать Астериск и шлюз каждый раз. Читайте, не пишите больше!
Иначе некорректно придётся Вас направить в раздел Бизнес, в платный суппорт. Там уже греют сковородки.
ded
 
Сообщений: 15805
Зарегистрирован: 26 авг 2010, 19:00

Re: Некорректно определяется входящая линия на одном IP

Сообщение Makioro » 27 фев 2018, 18:28

Шлюз Openvox - очень даже станция, на нём есть свой астериск (хоть и урезанный)

В общем, советы здешние не помогли, поэтому пошёл обходным путём: в мускле создал таблицу с соответствиями линий входящим номерам и статусом каждой линии, а также 2 процедуры и функцию
Одна процедура помечает линию занятой (при входящем звонке, линия определяется по DID), другая процедура - помечает её свободной (экстеншн h), функция возвращает свободную линию для исходящего звонка и сразу помечает её занятой (определяет по имени)
Пока полёт нормальный
Makioro
 
Сообщений: 21
Зарегистрирован: 22 сен 2016, 13:11

Re: Некорректно определяется входящая линия на одном IP

Сообщение ded » 27 фев 2018, 18:35

Makioro писал(а):Шлюз Openvox - очень даже станция, на нём есть свой астериск (хоть и урезанный)
Я это знаю со времён создания шлюзов OpenVox.
И это ничего не меняет в схеме регистрации: кто на ком должен регистрировать? Станция на телефоне, например, или всё же телефон на станции?
ded
 
Сообщений: 15805
Зарегистрирован: 26 авг 2010, 19:00

Re: Некорректно определяется входящая линия на одном IP

Сообщение virus_net » 28 фев 2018, 07:27

Makioro, а теперь подумайте, что будет если апдейт в мускуль, по тем или иным причинам, не пойдет ?

Так вы и не последовали совету от ded...
Книгу, судя по всему, так же не освоили.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Некорректно определяется входящая линия на одном IP

Сообщение Makioro » 28 фев 2018, 19:53

Пытался последовать совету подключать шлюз к серверу, а не наоборот - не получилось. Экспериментировать не на чем - это рабочая система, звонки идут постоянно
Если речь о совете "не пиши, а читай" - ему я последовал в полной мере. Отписался уже по решении проблемы. Только потому что когда ищу решение какой-то проблемы раздражают темы с описанием похожей, но без решения.
Да, понимаю что усложнение схемы увеличивает риск проблем. Но другого решения не придумал. Может переделаю на AstDB, но мускль там всё равно используется для других целей.

ded писал(а):Станция на телефоне, например, или всё же телефон на станции?

Строго "FXO-FXS" осталось на аналоге, в цифре границы размыты и разница небольшая - функционал есть, значит можно
Пишу в форуме новичков, т.к. являюсь новичком и телефония не является основным источником дохода. Вообще источником дохода не назвать. Скорее для разнообразия
"Астериск - будущее телефонии" прочел и даже был бумажный экземпляр (где-то посеял).

Всем спасибо. Думаю, тему можно закрыть
Makioro
 
Сообщений: 21
Зарегистрирован: 22 сен 2016, 13:11

Re: Некорректно определяется входящая линия на одном IP

Сообщение Zavr2008 » 01 мар 2018, 13:36

ТС, тема довольно типичная. Посмотрите на форумах - таких тем много.

Вот что можно поменять: type=peer поставить. Чтобы не писало gsm1 настроить sendpid=yes и trustrpid=yes на обоих концах.
Также обычно разруливают в одном контексте просто по номерам A и B.
Относительно БД: прямое юзание в диалплане очень дело скользкое - Вы можете легко вызвать утечки памяти. Если уж делать - то через AGI.

И я не уверен что данная проблема будет и в chan_pjsip! Попробуйте.
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2162
Зарегистрирован: 27 янв 2011, 01:35


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: ded и гости: 41

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH