Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Asterisk - software PBX

Автор: baldden
Дата сообщения: 13.11.2015 07:38
Всем привет, подскажите как решить проблемку, не пойму что не так.
Свзяка Freepbx + Dlink DVG-7111S (FXO)

Dlink цепляется с freepbx по sip аккаунту 1234567, и когда звонок приходит на FXO переадресовывает его на freepbx на номер 777

Все это работает на тестовом ноуте, решил тоже самое настроить на raspberry pi 2.
Но столкнулся с такой проблемой на малинке:
вот как астериск видит этот звонок на ноуте
-- Executing [777@from-trunk:1]
а вот как видит на малинке: --
Executing [777@from-internal:1]
как сделать чтобы тоже from-trunk?

1234567 - и там и там заведен как транк PEER Details:
host=dynamic
type=friend
username=1234567
secret=1234567abc
qualify=yes
context=from-trunk

Автор: yuris
Дата сообщения: 13.11.2015 08:36

Цитата:
как сделать чтобы тоже from-trunk?

как во freepbx - хз
на голом астериске, нужно номер 777 включить в контекст from-trunk
Автор: Clop345
Дата сообщения: 13.11.2015 11:40
Помогите пожалуйста написать строчку в диалплане, которая будет проверять первые две цифры из переменной и, если они НЕ равны 73,74,78,79, то присваивать этой же переменной другое значение (например 74950000000), а если нет - не менять ничего (оставить тоже значение что и было)

в переменной callerid_1 - номер в формате 7XXXXXXXXXX

Абсолютнейший новичок в Астериск.
Заранее благодарен всем откликнувшимся

Вот такое удалось написать:

Код:
same=> n,Set(callerid_1=${IF($[ ${callerid_1:-9} != "73"]?74950000000:${IF($[ ${callerid_1:-9} != "74"]?74950000000:${IF($[ ${callerid_1:-9} != "78"]?74950000000:${IF($[ ${callerid_1:-9} != "79"]?74950000000:${callerid_1})})})})})
same => n,Set(ARRAY(CALLERID(number),CALLERID(all))=${callerid_1},${callerid_1})
Автор: yuris
Дата сообщения: 13.11.2015 14:13
Clop345
не понял ничего, но судя по последней строке нужно CALLERID(all) менять.
не проверял, может и ошибся со скобками

Код:
same => n,ExecIf($["${CALLERID(num):0:2}" != "7[3489]"]?Set(CALLERID(all) = 74950000000))
Автор: Clop345
Дата сообщения: 13.11.2015 17:29

Цитата:
нужно CALLERID(all) менять.
не проверял, может и ошибся со скобками

все верно Вы поняли!
Большое спасибо за код! Это наверное то, что нужно и значительно изящней, хотя моя строка тоже работает

PS
Сначало не заработало... но добавил кавычки вокруг 74950000000 и вот тогда завелось

Код:
same => n,ExecIf($["${callerid_1:0:2}" != "7[3489]"]?Set(callerid_1="7495000000"))
Автор: yuris
Дата сообщения: 14.11.2015 08:38
Тогда вместо одной строки с "7[3489]"сделать 4 строки и последовательно сравнивать с "73" "74" "78" "79"
Можно как у вас в одну строку, но на мой взгляд чтение сильно усложняется.
Автор: Clop345
Дата сообщения: 14.11.2015 12:41

Цитата:
Тогда вместо одной строки с "7[3489]"сделать 4 строки и последовательно сравнивать с "73" "74" "78" "79"
Можно как у вас в одну строку, но на мой взгляд чтение сильно усложняется.

Увы, как оказалось, не работает ни мой вариант, ни Ваш

Рекомендуют воспользоваться REGEX, но я практически незнаком с этим
конструкция примерно такая

Код:
same=>n,ExecIf($["${REGEX("7[3489]" ${callerid_1:0:2})}"="0"]?Set(callerid_1="7495000000"))
Автор: yuris
Дата сообщения: 14.11.2015 16:08
Действительно, не работает, но должна же.
Заработало, когда все пробелы удалил:

Код:
same => n,ExecIf($["${CALLERID(num):0:2}"!="73"]?Set(CALLERID(all)=7495000000))
Автор: Clop345
Дата сообщения: 16.11.2015 07:16

Цитата:
Заработало, когда все пробелы удалил:


Код:  
same => n,ExecIf($["${CALLERID(num):0:2}"!="73"]?Set(CALLERID(all)=7495000000))

Автор: yuris
Дата сообщения: 16.11.2015 07:48
Не вижу проблемы сделать 4 строки и проверять по отдельности на 73,74,78,79
результат будет тот же, что и в одной строке.
вариант с проверкой на 2 условия

Код:
same => n,ExecIf($[["${CALLERID(num):0:2}"!="73"]|$["${CALLERID(num):0:2}"!="74"]]?Set(CALLERID(all)=7495000000))
Автор: Clop345
Дата сообщения: 16.11.2015 08:25

Цитата:
Не вижу проблемы сделать 4 строки и проверять по отдельности

Допустим, первые два символа из переменной равны 79
Первой же строкой проверки на !="73", мы присваиваем значение переменной "74950000000"
и это уже неверно...
Автор: yuris
Дата сообщения: 16.11.2015 08:49
Да, согласен, но проверка на !="79" вернет оригинальный callerid
Тогда действительно лучше через промежуточную переменную:

Код:
same => n,ExecIf($["${CALLERID(num):0:2}"!="73"]?Set(CheckCID=7495000000))
same => n,ExecIf($["${CALLERID(num):0:2}"!="74"]?Set(CheckCID=7495000000))
same => n,ExecIf($["${CALLERID(num):0:2}"!="78"]?Set(CheckCID=7495000000))
same => n,ExecIf($["${CALLERID(num):0:2}"!="79"]?Set(CheckCID=7495000000))
Автор: Clop345
Дата сообщения: 16.11.2015 11:06
В результате, подсказали такую конструкцию, которая работает:

Код:
same=>n,ExecIf($[${REGEX("^7[3489]" ${callerid_1})}]?NoOp(NORMA):Set(callerid_1="7495000000"))
Автор: k3NGuru
Дата сообщения: 26.11.2015 09:56
Коллеги, поделитесь, кто какими шлюзами/платами пользуется с ASterisk для аналоговых телефонов?

Есть потребность, но нет четкого видения качества/настройки оборудования. На IP пока не сильно горят переходить, только аналоговые трубки.
Автор: PlastUn77
Дата сообщения: 26.11.2015 11:56
k3NGuru
Платам предпочитаю шлюзы, и по цене и по удобству использования. те же PAP2t, SPA112, SPA122, SPA2102 работают годами без проблем, а на авито можно чуть ли не по 1к купить, 500р за FXS порт получается.
Автор: k3NGuru
Дата сообщения: 27.11.2015 04:52
PlastUn77
ну это все 2 портовые. А мне бы минимум на 24 порта
Сейчас используем Eltex TAU 24.
Автор: yuris
Дата сообщения: 27.11.2015 07:43
k3NGuru
а чем плох тау24? Да, в настройке есть сложности, но техподдержка элтекса неплохая. Под нас даже прошивку делали с исправлением, потом это исправление в паблике вышло.
тем более у них есть шлюзы на 36 и 72 порта.
Я бы глянул ещё на Asteroid. Банк до 30 каналов FXS/FXO, в астериске работает через dahdi.
Автор: WolandRU
Дата сообщения: 10.12.2015 22:35
Кстати, а можно как-то привязать потоки с TOPGATE или с Zelax к дахди, не раскрывая их?
Т.е. TDMoIP/TDMoE гейты стоят только с 1 стороны.
Автор: Orm
Дата сообщения: 16.03.2016 08:28
Монстры астериска, подскажите, пожалуйста что выбрать из ip телефонов для офиса. Нужна гарантированная безглючная работа с астериск (freepbx), 2 порта rj45, желательно недорогие и доступные на рынке
Автор: Kernell32
Дата сообщения: 17.03.2016 01:06
Orm
от бюджета отталкивайся. 2 порта нужны чтоб лишние провода не тянуть ? может spa122 взять и к ней уже за 300-500 рублей обычные трубки подцеплять ?? linksys, Nateks(если БП держать в запасе то аппарат вечный), grandstream, cisco(дорого), Siemens - разочаровался (то всё в порядке месяцами, то всё с ног на голову пока прошивку не перезальёшь, то базу родную не видит), Escene.


.... надо в шапке FAQ добавить на выбор трубок, софтфоны обзор есть, а железа нет
Автор: aftertime
Дата сообщения: 17.03.2016 08:59
Orm
Я ненастоящий сварщик, но мы используем вот такие телефоны и проблем не знаем: Yealink T21P
Автор: denis
Дата сообщения: 22.03.2016 23:47
Берите Grandstream'ы. Хорошие аппараты, работают долго.
Автор: Belua
Дата сообщения: 24.05.2016 18:33
Прошу помощи.
Есть PSTN-->E1-->Mediant2000-->*
Не выходит у меня настройка исходящих звонков. Входящие идут нормально.
Настройки следующие:
sip.conf

Код: [mediant2000]
type=friend
host=172.30.250.51
port=1720
t38pt_udptl=yes
canreinvite=no
disallow=all
allow=alaw
allow=g729
dtmfmode=rfc2833
context=mediant2000
faststart=yes
h323id=mediant2000
h245tunneling=yes
rtptimeout=60
;deny=0.0.0.0/0.0.0.0
;permit=
Автор: yuris
Дата сообщения: 25.05.2016 10:46
Belua
Вы определитесь, конфигурите сип.конф, а вызываете через Н323
Автор: jfx
Дата сообщения: 25.05.2016 11:36
Добрый день.
Вопрос конечно весьма расплывчатый но может подскажите куда копать.
Есть Asterisk, живет за NAT (Mikrotik), порты проброшены, NAT оформлен, все пучком, все работает, НО, любой разговор валится через 360 секунд. Ограничений в астере нет, у провайдера ограничений нет.
Через 360 сек. вроде идет принудительная перерегистрация и видимо в этом момент что-то идет не так. Как выяснить что именно идет не так?
Автор: yuris
Дата сообщения: 25.05.2016 12:00
В консоли астера sip show settings
и смотрите вывод Reg. default duration: по дефолту стоит 300с
Но я думаю причина в другом. Пишите трафик tcpdump`ом в файл и потом анализируйте RTP в wireshark.
Можно ещё сделать rtcp set debug on , но там столько повалит в консоль, что не уследить.
У вас у всех, кто разговаривает в данный момент, завершаются разговоры? Без разницы входящий-исходящий?
Автор: Vby
Дата сообщения: 26.05.2016 15:58
jfx
Отключи на микротике SIP HELPER
Автор: jfx
Дата сообщения: 26.05.2016 22:44

Цитата:
Отключи на микротике SIP HELPER

Отключен с самого начала
Автор: Belua
Дата сообщения: 27.05.2016 08:07

Цитата:
Вы определитесь, конфигурите сип.конф, а вызываете через Н323

Прошу прощения, конечно, ooh323.conf

Код:
[mediant2000]
type=friend
context=from-mediant
faststart=yes
h323id=mediant2000
h245tunneling=yes
ip=172.30.250.51
port=1720
disallow=all
allow=alaw
allow=g729
rtptimeout=60
dtmfmode=rfc2833
call_limit=30
Автор: yuris
Дата сообщения: 30.05.2016 10:32
Belua
Почему бы вам не перейти на sip? Медиант его поддеживает. В астериске chan_ooh323 нестабильный.

Включите дебаг на астериске ooh323 set debug on и сделайте вызов

Какая у вас версия астериска?
Попробуйте команду dial привести к следующему виду
Dial(H323/mediant2000/${EXTEN},45,tL(1770000))

Страницы: 1234567891011121314151617

Предыдущая тема: Запретил все интерактивный вход в систему.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.