AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Realtime экстеншены или ошибка Asterisk?

Asterisk GUI 12 сообщений -
#1

Имеем голый Asterisk v1.4.13
Есть экстеншен такого вида exten=> _9XXXX/100,1,Dial(SIP/102)
Отрабатывает если CallerID звонящего "100"
Переношу диалплан в MySQL, весь диалплан работает, кроме _9XXXX/100. А точнее пропускается все без исключения, буд-то CallerID=108, 110 и т.д. Такое ощущения что Asterisk при считывании с БД пропускает "/100" а читает только "_9XXXX".
В чем может быть проблема? Либо это конкретный глюк Астера?
#2

Это конкретный глюк sea80.
Имея диалплан
exten=> _9XXXX/100,1,Dial(SIP/102)
по нему любой, кто наберёт что-то пятизначное с 9-ки попадёт на устройство SIP/102, возможно это телефон. При этом пропускается все без исключения, буд-то CallerID=108, 110, хоть там вообще не будет CallerID. Потому что шаблон _9XXXX/100 описывае кому звонят, а не кто звонит, и он для меня загадка.
Что ты этим _9XXXX/100 хотел задать?
#3

Я описываю проблему фильтрации по CallerID звонящего, а не то куда я звоню. И описал в облегченном виде, для восприятия. Было бы проще, если бы я написал exten => s/100,2,Dial(SIP/102${ARG1}@180,25,Ttrj) с десятком строк в контексте макросов? Поэтому не отходим от темы и первый вопрос в силе.
Счиаем что все 5значные номера с 9 нам надо отправить на SIP/102
#4

Читаем описание фичи вместе?
Цитата:
Other options for defining extensions include an option commonly referred to as the ex-girlfriend logic. This logic will match the dialed extension, whether it came from outside or inside, based on the callerid of the person calling it. For exmaple:

exten => 123/100,1,Answer()
exten => 123/100,2,Playback(tt-weasels)
exten => 123/100,3,Voicemail(123)
exten => 123/100,4,Hangup()

This will match extension 123 and perform the following options ONLY if the Caller-ID Number of the calling user is 100.

Правило базирующееся на callerid звонящего. Будет отрабатывать ТОЛЬКО если Caller-ID звонящего 100. Именно так как ты и описал, остальные - 108, 110 - игнорируются.
Если
Цитата:
Такое ощущения что Asterisk при считывании с БД пропускает "/100" а читает только "_9XXXX".
то не знаю как считывает Астериск из базы, в Триксбоксе каждое считывание выкидывается в специальный файл extensions_additional.conf, который считывает Астериск при релоде. Этот файл хорошо просматривается для анализа. Так ли у тебя?
#5

В Asterisk extensions_additional.conf отсутствует. Более того, конфигурация Астериском считывается прямо из базы и не требует reload. Тем оно и привликательно, любое изменение моментально вступает в силу.
Диалплан
Код:
exten => 123/100,1,Answer()
exten => 123/100,2,Playback(tt-weasels)
exten => 123/100,3,Voicemail(123)
exten => 123/100,4,Hangup()

будь они написаны в в extensions.conf, действовать будут (примерно так оно первоначально и работало) Но с переносом эестеншена в БД не работает именно конструкция 123/100 (его вторая часть будет игнорироваться, как буд-то ее вообще не существует)
Вот и хочу узнать может кто сталкивался с подобной ситуацией и в чем все-таки проблема
#6

Думаю, что когда пишет-читает в базу он спотыкается об слэш. Может это быть спецсимволом?
#7

В параметрах Dial SIP/102 воспринимается нормально, так что спецсимвол не должно
С самого начала пробовал _9XXXX/100 заменить "/" на "|" и "\" астериск сообщает что неверный экстеншен
#8

Попробуй весь кусок в кавычки? "_9XXXX/100"
Если нет - надо в баглист писать.
#9

Результат: Ковычки не помогают
#10

А ты friendly with phpMyAdmin ?
Посмотри командами, как читаются-пишутся выражения вида _9ХХХ/100 в таблицу диалплана? Дебаг и лог MySQL?
#11

Вообще я сам пишу небольшую оболочку для астера на AJAXе. Но, до того, как что-то написать делаю изменения руками напрямую в mysql и смотрю результат

Код:
mysql> select * from `asterisk`.`extensions_table` where exten='_91XXX/100';
+----+---------+-------------+----------+------+----------------------------+
| id | context | exten | priority | app | appdata |
+----+---------+-----------+----------+------+----------------------------+
| 41 | office | _91XXX/100 | 1 | Dial | SIP/102 |
+----+---------+-----------+----------+------+----------------------------+


По дебагу сип, Астер показывает что звонок просто идет на экстеншн _91XXX. Все больше прихожу к выводу что это баг.
Люди, неужели никто не пользуется Asterisk Realtime и не использует фильтрацию по CallerID?
Если у кого-то есть удачный опыт применения, версию Asterisk и аддона в студию!!
#12

Сегодня пошел на координальные меры, переставил Астериск на версию Asterisk-1.4.17, аддон 1.4.5 Проблемы все те же. Ерунда какая-то....
Более того нашел еще один глюк Если я делаю такую конструкцию exten 101/108 , то до экстеншена 101 вообще никто не может дозвониться, даже 108. Asterisk+Realtime = ГЛЮКИ
Хоть кто-нибудь держал конфигурацию Asterisk в mysql-e ?

Added after 1 hours 14 minutes:

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