Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Не обрабатывается context из файла extensions_custom.conf

0

Добрый вечер всем! Для разделения звонков по EXT, приходящих через один транк, использую инструкции из сайта FreePBX.

Файл: extensions_custom.conf

[custom-get-did-from-sip]
;Get the DID of a SIP trunk when the provider doesnt send it
exten => s,1,Noop(Fixing DID using information from SIP TO header)
exten => s,n,Set(pseudodid=${SIP_HEADER(To)})
exten => s,n,Set(pseudodid=${CUT(pseudodid,@,1)})
exten => s,n,Set(pseudodid=${CUT(pseudodid,:,2)})
exten => s,n,Goto(from-trunk,${pseudodid},1)

Но не тут то было. Заметил, что Elastix сам создает на каждый транк Context типа: context=from-trunk-sip-ИмяТранка

Хорошо, нашел:

[from-trunk-sip-ИмяТранка]
include => from-trunk-sip-ИмяТранка-custom
exten => _.,1,Set(GROUP()=OUT_8)
exten => _.,n,Goto(from-trunk,${EXTEN},1)

и записал в файл extensions_custom.conf

[from-trunk-sip-ИмяТранка-custom]
exten => s,1,Noop(Fixing DID using information from SIP TO header)
exten => s,n,Set(pseudodid=${SIP_HEADER(To)})
exten => s,n,Set(pseudodid=${CUT(pseudodid,@,1)})
exten => s,n,Set(pseudodid=${CUT(pseudodid,:,2)})
exten => s,n,Goto(from-trunk,${pseudodid},1)

Не работает. Добавил то же в файл extensionsoverrideelastix.conf Не помогает.

Что я не так делаю? asterisk 1.8.11.0 + freepbx 2.8.1 + elastix 2.3.0

удалить закрыть спам изменить тег редактировать

спросил 2012-05-15 01:02:02 +0400

bsa Gravatar bsa
11 2 2 2

обновил 2012-05-15 10:11:52 +0400

zzuz Gravatar zzuz flag of Russian Federation
7174 2 6 75
http://line24.ru/

Comments

1

Что значит "Не работает"? Что пишет в консоли? dialplan reload делали? И отформатируйте код, смотреть невозможно.

Aven ( 2012-05-15 01:08:40 +0400 )редактировать

5 Ответов

0

Olpag, сорри, не заметил сразу ответ. Действительно, неизвестно как он обрабатывает эти инклюды. Вроде уже все перепробовал. Работает только [from-pstn-custom], но при наборе своих номеров, зацикливается. В остальных вариантах просто не обрабатывает. Например, сейчас:

PBX*CLI> dialplan show from-trunk-sip-FreecoNet_(vensys)                        [ Context 'from-trunk-sip-FreecoNet_(vensys)' created by 'pbx_config' ]
  '_.' =>           1. Set(GROUP()=OUT_8)                         [pbx_config]
                    2. Goto(from-trunk,${EXTEN},1)                [pbx_config]
  Include =>        'from-trunk-sip-FreecoNet_(vensys)-custom'    [pbx_config]

-= 1 extension (2 priorities) in 1 context. =-

'[from-trunk-sip-FreecoNet(vensys)-custom]' находится в 'extensionsoverride_freepbx.conf'

PBX*CLI> dialplan show from-trunk-sip-FreecoNet_(vensys)-custom                 [ Context 'from-trunk-sip-FreecoNet_(vensys)-custom' created by 'pbx_config' ]
  '_.' =>           1. Noop(Fixing DID using information from SIP TO header) [pbx_config]
                    2. Set(pseudodid=${SIP_HEADER(To)})           [pbx_config]
                    3. Set(pseudodid=${CUT(pseudodid,@,1)})       [pbx_config]
                    4. Set(pseudodid=${CUT(pseudodid,:,2)})       [pbx_config]
                    5. Goto(from-trunk-sip-FreecoNet_(vensys),${pseudodid},1) [pbx_config]

-= 1 extension (5 priorities) in 1 context. =-

Но в результате получаю ту же картину. При записи в файл 'extensionscustom.conf' или изменении "." на "vensys" ничего не меняется:

== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [vensys@from-trunk-sip-FreecoNet_(vensys):1] Set("SIP/FreecoNet_(vensys)-00000001", "GROUP()=OUT_8") in new stack
-- Executing [vensys@from-trunk-sip-FreecoNet_(vensys):2] Goto("SIP/FreecoNet_(vensys)-00000001", "from-trunk,vensys,1") in new stack
-- Goto (from-trunk,vensys,1)
-- Executing [vensys@from-trunk:1] Set("SIP/FreecoNet_(vensys)-00000001", "__FROM_DID=vensys") in new stack
-- Executing [vensys@from-trunk:2] NoOp("SIP/FreecoNet_(vensys)-00000001", "Received an unknown call with DID set to vensys") in new stack
-- Executing [vensys@from-trunk:3] Goto("SIP/FreecoNet_(vensys)-00000001", "s,a2") in new stack
-- Goto (from-trunk,s,2)
-- Executing [s@from-trunk:2] Answer("SIP/FreecoNet_(vensys)-00000001", "") in new stack
-- Executing [s@from-trunk:3] Wait("SIP/FreecoNet_(vensys)-00000001", "2") in new stack
-- Executing [s@from-trunk:4] Playback("SIP/FreecoNet_(vensys)-00000001", "ss-noservice") in new stack

Это глюк у меня или у Elastix? и как с ним бороться?

ссылка удалить спам редактировать

ответил 2012-05-19 14:12:12 +0400

bsa Gravatar bsa
11 2 2 2

Comments

Перечитайте внимательно мой ответ!!! в extensions_override _freepbx.conf надо написать контекст from-trunk-sip-ИмяТранка, а не from-trunk-sip-ИмяТранка-custom. И туда же добавить второй контекст from-trunk-sip-ИмяТранка-original . Я вам уже написал готовое решение

Olpag ( 2012-05-20 17:56:54 +0400 )редактировать
0

И на этом спасибо. Действительно, только учусь.

Лог таков:

== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [vensys@from-trunk-sip-ИмяТранка:1] Set("SIP/ИмяТранка-00000000", "GROUP()=OUT_8") in new stack
-- Executing [vensys@from-trunk-sip-ИмяТранка:2] Goto("SIP/ИмяТранка-00000000", "from-trunk,vensys,1") in new stack
-- Goto (from-trunk,vensys,1)
-- Executing [vensys@from-trunk:1] Set("SIP/ИмяТранка-00000000", "__FROM_DID=vensys") in new stack
-- Executing [vensys@from-trunk:2] NoOp("SIP/ИмяТранка-00000000", "Received an unknown call with DID set to vensys") in new stack
-- Executing [vensys@from-trunk:3] Goto("SIP/ИмяТранка-00000000", "s,a2") in new stack
-- Goto (from-trunk,s,2)
-- Executing [s@from-trunk:2] Answer("SIP/ИмяТранка-00000000", "") in new stack
-- Executing [s@from-trunk:3] Wait("SIP/ИмяТранка-00000000", "2") in new stack
-- Executing [s@from-trunk:4] Playback("SIP/ИмяТранка-00000000", "ss-noservice") in new stack
-- <SIP/ИмяТранка-00000000> Playing 'ss-noservice.gsm' (language 'en')
ссылка удалить спам редактировать

ответил 2012-05-15 17:23:03 +0400

bsa Gravatar bsa
11 2 2 2

обновил 2012-05-15 17:54:58 +0400

Comments

1

КНОПКА КОД ДЛЯ КОГО?

meral ( 2012-05-15 17:35:03 +0400 )редактировать

вместо s,1 вписать vensys,1 и так далее для всего остального.

meral ( 2012-05-15 23:07:31 +0400 )редактировать
0

есть куча вариантов.

самый простой - у вас звонок приходит не в s context как вы написали,а например на номер 123456. что с вашим диалпланом работаь не будет.

вообещ начните с общей книги по астериску. и посмотрите вывод на консоли

asterisk -vvvvr
ссылка удалить спам редактировать

ответил 2012-05-15 09:33:48 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/
0

Астериск, непонятно каким образом, делает инклюды... выполните команду:

dialplan show from-trunk-sip-ИмяТранка

Скорее всего у Вас будет такой вывод:

[ Context 'from-trunk-sip-ИмяТранка' created by 'pbx_config' ]
  '_.' =>           1. Set(GROUP()=OUT_8)                         [pbx_config]
                    2. Goto(from-trunk,${EXTEN},1)                [pbx_config]
  Include =>        'from-trunk-sip-ИмяТранка-custom'             [pbx_config]

Поэтому до выполнения вашего кастом контекста дело не дойдет. Ну и судя по логу, у вас _FROMDID=vensys, а не _FROMDID=s

meral Вам уже писал, что нажо заменить s,1 на vensys,1 и т.д. Перепишите контекст [from-trunk-sip-ИмяТранка] в extensions_override _freepbx.conf таким образом:

[from-trunk-sip-ИмяТранка]
exten => vensys,1,Noop(Fixing DID using information from SIP TO header)
exten => vensys,n,Set(pseudodid=${SIP_HEADER(To)})
exten => vensys,n,Set(pseudodid=${CUT(pseudodid,@,1)})
exten => vensys,n,Set(pseudodid=${CUT(pseudodid,:,2)})
exten => vensys,n,Goto(from-trunk-sip-ИмяТранка-original,${pseudodid},1)

[from-trunk-sip-ИмяТранка-original]
include => from-trunk-sip-ИмяТранка-custom
exten => _.,1,Set(GROUP()=OUT_8)
exten => _.,n,Goto(from-trunk,${EXTEN},1)
ссылка удалить спам редактировать

ответил 2012-05-17 10:12:42 +0400

Olpag Gravatar Olpag
2024 3 6 30

обновил 2012-05-17 10:19:01 +0400

0

Оператор прислал инструкцию:

exten => _.,1,Set(TOHDR=${SIP_HEADER(To)})
exten => _.,2,Set(SWITCH=${REGEX("222502292" ${TOHDR})})
exten => _.,3,GotoIf($["${SWITCH}" = "1"]?from-internal,203,1)

Но вопрос с том, что не обрабатывается custom context. Согласно лога дальше

[from-trunk-sip-ИмяТранка]
include => from-trunk-sip-ИмяТранка-custom
exten => _.,1,Set(GROUP()=OUT_8)
exten => _.,n,Goto(from-trunk,${EXTEN},1)

не следует. Как сделать так, чтобы сначало выполнялся customs context из файла extensions_custom.conf или на крайний случай из extensions_override_elastix.conf. Использую пока стандартную инсталляцию с ISO-диска без каких-либо изменений. До этого использовал и пока использую железяку ZX50, которая внутри имеет Asterisk 1.4 и проблему решил созданием транка на каждый номер. Но это не выход, иметь 25 транков.

ссылка удалить спам редактировать

ответил 2012-05-15 18:10:26 +0400

bsa Gravatar bsa
11 2 2 2

Comments

REGEX("222502292" ${TOHDR})} - спасибо , посмеялся.

zzuz ( 2012-05-15 18:26:37 +0400 )редактировать

судя по вашим вопросам только нанять когото. ибо совершенно не понятно что происходит.

meral ( 2012-05-15 23:07:02 +0400 )редактировать

Зато автор поразил нас бессмысленнм набором букв в диаплане. Тоже ничего, хоть какое-то на сегодня развлечение)

zzuz ( 2012-05-16 00:15:42 +0400 )редактировать

На специализированные форумы обращаются менее опытные, дабы получить помощь от более опытных. Вижу некоторые отвечающие или не владеют темой, или ищут доп. заработок, или им просто нечего делать. Посмеяться можно на сайте анекдот.ру.

Повторяю вопрос: Как заставить обрабатываться custom context из файла extensions_custom.conf в конфигурации asterisk 1.8.11.0 + freepbx 2.8.1 + elastix 2.3.0 в первую очередь? используется для извлечения DID номера из заголовка, поскольку оператор его не отправляет.

Я настраивал достаточно интегрированных систем, но в основном через GUI-интерфейс с минимальными правками конфиг. файлов. Заранее спасибо за конструктивную помощь.

bsa ( 2012-05-16 01:10:11 +0400 )редактировать

Все звонки попадают во from-trunk , далее в from-pstn-custom , вот там DID и отлавливайте . Пример правильного диаплана с удовольствием приведу , если только Вы мне обьясните что это за строчка exten = _.,2,Set(SWITCH=${REGEX("222502292" ${TOHDR})}) ?

zzuz ( 2012-05-16 01:19:45 +0400 )редактировать

да тут вообещ никто не владеет темой. я вон там вам ответил что надо сделать.

meral ( 2012-05-16 02:13:25 +0400 )редактировать

Спасибо, уже близко. Буду очень благодарен, если поможете с правильным диалпланом. У меня нет сейчас from-pstn-custom. А что за строка, привожу без изменений...

Dla połączeń przychodzących należy wydobyć informacje o numerze z nagłówka "To:"
exten =&gt; _.,1,Set(TOHDR=${SIP_HEADER(To)})  ///(pobranie nagłówka)
exten =&gt; _.,2,Set(SWITCH=${REGEX("221234567" ${TOHDR})})  ///(badanie czy połączenie przyszło na numer np. 221234567)
Potem można skoczyć do odpowiedniego kontekstu i extension dla tego numeru:
exten =&gt; _.,3,GotoIf($["${SWITCH}" = "1"]?kontekst,extension,1) ///(przekazanie do kontekstu, extena na priorytet 1)
Dla połączeń wychodzących trzeba odpowiednio ustawić prezentacje (w panelu musi być "- użyj z bramki -"):
exten =&gt; _.,1,Set(CALLERID(number)=48221234567)

Но мне больше понравилась инструкция:

<a href="http://www.freepbx.org/support/documentation/howtos/how-to-get-the-did-of-a-sip-trunk-when-the-provider-doesnt-send-it-and-">http://www.freepbx.org/support/documentation/howtos/how-to-get-the-did-of-a-sip-trunk-when-the-provider-doesnt-send-it-and-</a>
bsa ( 2012-05-16 15:27:42 +0400 )редактировать

Описания вашей бредовой строки так и непонятно, тем более скопированной фиг знает откуда. Так что разбирайтесь.

zzuz ( 2012-05-16 22:54:39 +0400 )редактировать

если нет from-pstn-custom , так создайте , если конечно вам ваш язвительный характер позволяет.

zzuz ( 2012-05-16 22:56:11 +0400 )редактировать

Тот же вопрос: 'http://asteriskforum.ru/viewtopic.php?printertopic=1&t=9431&start=0&postdays=0&postorder=asc&vote=viewresult"

Отзовитесь, кто знает ответ.

Или куда вставить custom context, чтобы он обрабатывался перед 'from-trunk'?

bsa ( 2012-05-17 01:17:35 +0400 )редактировать

Путем проб и ошибок добавил в extensions_custom.conf:

[from-pstn-custom]
exten =&gt; _.,1,NoOp(Fixing DID using information from SIP TO header)
exten =&gt; _.,n,NoOp(Original CallerID = ${CALLERID(num)})
exten =&gt; _.,n,NoOp(Original TOHDR = ${TOHDR})
exten =&gt; _.,n,Set(pseudodid=${SIP_HEADER(To)})
exten =&gt; _.,n,Set(pseudodid=${CUT(pseudodid,@,1)})
exten =&gt; _.,n,Set(pseudodid=${CUT(pseudodid,:,2)})
exten =&gt; _.,n,Set(CALLERID(num)=48${pseudodid:1})
exten =&gt; _.,n,NoOp(Original CallerID = ${CALLERID(num)})
exten =&gt; _.,n,Goto(ext-did,${CALLERID(num)},1)

теперь работает. Тестирую

bsa ( 2012-05-18 01:55:36 +0400 )редактировать

о. видите налицо прогрес в понимании астериска и прогрес в оформлении коментариев. если что,то dumpchan екстеншен вам в помощь.

meral ( 2012-05-18 11:19:19 +0400 )редактировать

рано я радовался. При входящих звонках все ОК. Когда набираешь с внутреннего номера любой из своих номеров из списка DID, бедная зацикливается и пашет, как угорелая. Получилось остановить ее только core restart now

bsa ( 2012-05-19 12:08:46 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
2 закладки

подписаться на rss ленту новостей

Статистика

Задан: 2012-05-15 01:02:02 +0400

Просмотрен: 9,754 раз

Обновлен: May 19 '12

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.