GotoIf - как сравнить MESSAGE(from)
Добавлено: 04 июн 2024, 14:07
Всем привет!
Настраиваю получение SMS через многоканальный goip-шлюз на Asterisk 21.2.0 (PJSIP). Мой вариант goip (старая железка) отправляет SMS со всех каналов на один и тот же номер, при этом в поле MESSAGE(from) можно увидеть конкретный номер линии, куда пришла SMS:
<sip:goip8-L01@192.168.0.100>
<sip:goip8-L02@192.168.0.100>
<sip:goip8-L03@192.168.0.100>
и т.д. Тут значимыми являются именно L01, L02 и т.д - т.е. номер GSM-канала, куда прилетела SMS.
Я хочу непосредственно в Dialplan, по значению MESSAGE(from) - в зависимости от того, на какой канал пришла SMS - делать определенные действия (например, перенаправлять SMS в ту или другую сторону). Идея была использовать GotoIf, типа такого:
Затык в том, что это дает мне ошибку:
Т.е. Asterisk'у не нравятся скобки <>, соответственно сравнения не происходит и GotoIf не работает так, как от него ожидалось.
Подскажите, как правильно прописать сравнение в dialplan'е ?
Заранее спасибо за ответы!
Настраиваю получение SMS через многоканальный goip-шлюз на Asterisk 21.2.0 (PJSIP). Мой вариант goip (старая железка) отправляет SMS со всех каналов на один и тот же номер, при этом в поле MESSAGE(from) можно увидеть конкретный номер линии, куда пришла SMS:
<sip:goip8-L01@192.168.0.100>
<sip:goip8-L02@192.168.0.100>
<sip:goip8-L03@192.168.0.100>
и т.д. Тут значимыми являются именно L01, L02 и т.д - т.е. номер GSM-канала, куда прилетела SMS.
Я хочу непосредственно в Dialplan, по значению MESSAGE(from) - в зависимости от того, на какой канал пришла SMS - делать определенные действия (например, перенаправлять SMS в ту или другую сторону). Идея была использовать GotoIf, типа такого:
Код: Выделить всё
same = n,GotoIf($[${MESSAGE(from)}==<sip:goip8-L01@192.168.0.100>]?8-L01)
same = n,GotoIf($[${MESSAGE(from)}==<sip:goip8-L02@192.168.0.100>]?8-L02)
Затык в том, что это дает мне ошибку:
Код: Выделить всё
[Jun 4 13:40:47] WARNING[1204][C-00000002]: ast_expr2.fl:468 ast_yyerror: ast_yyerror(): syntax error: syntax error, unexpected '<', expecting $end; Input:
<sip:goip8-L02@192.168.0.100>==<sip:goip8-L02@192.168.0.100>
^
[Jun 4 13:40:47] WARNING[1204][C-00000002]: ast_expr2.fl:472 ast_yyerror: If you have questions, please refer to https://docs.asterisk.org/Configuration/Dialplan/Variables/Channel-Variables/
Подскажите, как правильно прописать сравнение в dialplan'е ?
Заранее спасибо за ответы!