Добрый день. Подскажите, плз, по такому вопросу. Задача: сделать созыв конференции с определенным количеством абонентов при нажатии кнопки на IP-телефоне (Linksys SPA-252G). Директор хочет несколько конференций с разными участниками на разных кнопках получить. Такое вообще возможно? Натолкните, плз, на путь правильный :) Спасибо.
[from-internal-custom] exten => STARTMEETME,1,MeetMe(${MEETME_ROOMNUM},${MEETME_OPTS},${PIN}) exten => STARTMEETME,n,Hangup exten => h,1,Hangup exten => 8001,1,Macro(user-callerid,) exten => 8001,n,Set(MEETME_ROOMNUM=8001) exten => 8001,n,Set(MEETME_RECORDINGFILE=${ASTSPOOLDIR}/monitor/meetme-conf-rec-${MEETME_ROOMNUM}-${UNIQUEID}) exten => 8001,n,GotoIf($["${DIALSTATUS}" = "ANSWER"]?READPIN) exten => 8001,n,Answer exten => 8001,n,Wait(1) exten => 8001,n,Set(PINCOUNT=0) exten => 8001,n(READPIN),Read(PIN,enter-conf-pin-number,,,,) exten => 8001,n,GotoIf($[x${PIN} = x1111]?USER) exten => 8001,n,GotoIf($[x${PIN} = x7777]?ADMIN) exten => 8001,n,Set(PINCOUNT=$[${PINCOUNT}+1]) exten => 8001,n,GotoIf($[${PINCOUNT}>3]?h) exten => 8001,n,Playback(conf-invalidpin) exten => 8001,n,Goto(READPIN) ;exten => 8001,n(ADMIN),Set(MEETME_OPTS=aAIr) exten => 8001,n,Goto(STARTMEETME,1) exten => 8001,n(USER),Set(MEETME_OPTS=Ir) exten => 8001,n,AGI(makecall.sh) exten => 8001,n,Goto(STARTMEETME,1) exten => 8001,hint,MeetMe:8001 [meet3] exten => STARTMEETME,1,MeetMe(${MEETME_ROOMNUM},${MEETME_OPTS},${PIN}) exten => STARTMEETME,n,Hangup exten => h,1,Hangup exten => 8001,1,Macro(user-callerid,) exten => 8001,n,Set(MEETME_ROOMNUM=8001) exten => 8001,n,Set(MEETME_RECORDINGFILE=${ASTSPOOLDIR}/monitor/meetme-conf-rec-${MEETME_ROOMNUM}-${UNIQUEID}) exten => 8001,n,GotoIf($["${DIALSTATUS}" = "ANSWER"]?READPIN) exten => 8001,n,Answer exten => 8001,n,Wait(1) exten => 8001,n,Set(PINCOUNT=0) exten => 8001,n(READPIN),Read(PIN,enter-conf-pin-number,,,,) exten => 8001,n,GotoIf($[x${PIN} = x1111]?USER) exten => 8001,n,GotoIf($[x${PIN} = x7777]?ADMIN) exten => 8001,n,Set(PINCOUNT=$[${PINCOUNT}+1]) exten => 8001,n,GotoIf($[${PINCOUNT}>3]?h) exten => 8001,n,Playback(conf-invalidpin) exten => 8001,n,Goto(READPIN) ;exten => 8001,n(ADMIN),Set(MEETME_OPTS=aAIr) exten => 8001,n,Goto(STARTMEETME,1) exten => 8001,n(USER),Set(MEETME_OPTS=Ir) exten => 8001,n,Goto(STARTMEETME,1) exten => 8001,hint,MeetMe:8001
В /var/lib/asterisk/agi-bin ложиш 2 файла:
makecall_conf.agi
<?php $sys_ip = "XXX"; $User_str = "XXX"; $Secret_str = "XXX"; $oSocket = fsockopen($sys_ip, 5038, $errnum, $errdesc) or die("Connection to host failed"); fputs($oSocket, "Action: login\r\n"); fputs($oSocket, "Username: $User_str\r\n"); fputs($oSocket, "Secret: $Secret_str\r\n\r\n"); fputs($oSocket, "Events: off\r\n\r\n"); fputs($oSocket, "Action: originate\r\n"); fputs($oSocket, "Channel: SIP/%ЕКСТЕНШИН%\r\n"); fputs($oSocket, "Exten: 8001\r\n"); fputs($oSocket, "Context: meet3\r\n"); fputs($oSocket, "Priority: 1\r\n\r\n"); fclose($oSocket); ?>
И makecall.sh
#!/bin/sh php < /var/lib/asterisk/agi-bin/makecall_conf.agi
Может и криво, но на скорую руку.
Я так и предполагал.... А вот как такой диалплан написать? есть идеи?
в теории да:
Задан: 2011-03-21 13:02:44 +0400
Просмотрен: 1,031 раз
Обновлен: Mar 21 '11
Объединение офисов. Trixbox и Panasonic TDE-200
centos с trixbox виснет при изменении времени
Trixbox (2.8.0.4) + AudioCodes mp-112 (sip) + AudioCodes mp-112 (h.323), как правильно подружить
trixbox 2.8.0.4 после обновления
запрос из контекста в БД firebird
FreePBX 2.8.1, Queue, Пустая очередь.
не моуг позвонить на внутренние ZAP устройства
Trixbox 51 от Lynks. Vlan на интерфейсе. [закрыт]
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.