имеется FreePBX, в нем несколько групп абонентов, разнесены между собой через custom context. Нужно чтобы модуль ChanSpy работал только внутри своего контекста. Для удобства группы абонентов разнесены в разные сотни (1XX-context1, 2XX-context2) Понимаю, что для удобства нужно создать в extensions_custom.conf отдельные диалпланы, типа
1 exten => 556\1XX,1,Answer
2 exten => 556\1XX,n,Authenticate(1234)
3 exten => 556\1XX,n,ChanSpy(.... слушать только абонентов контекста1 или номера 1ХХ)
4 exten => 556,n,Hangup
Как правильно в моем случае третью строчку прописать?
Для использования шаблонов в диалплане, они должны начинаться со знака подчеркивания. Т.е. не 1XX, а _1XX
Перечитайте http://www.voip-info.org/wiki/view/Asterisk+Dialplan+Patterns
Соответственно, Ваш диалплан должен выглядеть так (слушать номера 1ХХ и только с номеров 1ХХ):
exten => _5561XX/_1XX,1,Answer
exten => _5561XX/_1XX,n,Authenticate(1234)
exten => _5561XX/_1XX,n,ChanSpy(sip/${EXTEN:3},q)
exten => _5561XX/_1XX,n,Hangup
А здесь вы пытаетесь сравнить число из ${SPYNUM} с чем? с 1ХХ и с 2XX? Как Вы это себе представляете?
exten => 5556,n,Set(SPYNUM=${IF($[${SPYNUM} = 1XX]?0:${SPYNUM})})
exten => 5557,n,Set(SPYNUM=${IF($[${SPYNUM} = 2XX]?0:${SPYNUM})})
Во втором случае там номера доступа к chanspy для разных абонентов разные ж.
Задан: 2013-05-04 01:12:20 +0400
Просмотрен: 901 раз
Обновлен: May 07 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Попробовал так:
exten => 5556,1,Authenticate(1111);
exten => 5556,n,Read(SPYNUM,extension)
exten => 5556,n,Set(SPYNUM=${IF($[${SPYNUM} = 1XX]?0:${SPYNUM})})
exten => 5556,n,ChanSpy(SIP/${SPYNUM},q)
exten => 5557,1,Authenticate(1111);
exten => 5557,n,Read(SPYNUM,extension)
exten => 5557,n,Set(SPYNUM=${IF($[${SPYNUM} = 2XX]?0:${SPYNUM})})
exten => 5557,n,ChanSpy(SIP/${SPYNUM},q)
не помогает, слушает все подряд, на обоих номерах
Sergo ( 2013-05-04 01:55:57 +0400 )редактировать