Cara, boa tarde !
estou desenvolvendo uma aplicação igualzinha a sua ... com muito custo e estudo eu ja consegui retornar os status da ligação e mostrar na tela para o originador da chamada ainda falta umas coisnhas.. se vc quiser .. me add no [email protected] que trocamos uma idéia .. qualquer coisa ate desenvolvemos soluções juntos. só pra matar a dúvida ... vc tem que usar Async=yes e determinar um action id pra ele .. e depois capturar o originate response.. qualquer dúvida só entrar em contato Em 07.01.2014 15:04, Victor Gonçalves escreveu: > Boa tarde Lista, > > Estou tentando encontrar a melhor forma de receber o status de uma chamada e informar aos nossos atendentes. > > Criei um sistema onde eu subo um mailing com informações de nossos clientes, automaticamente ele cai nesse script fornecendo as informações necessárias para efetuar a chamada. > > <?php > > session_start(); > > $strHost = "127.0.0.1"; > > $strUser = "admin"; > > $strSecret = "xxxxxx"; > > $strChannel = "SIP/TRONCO"; > > $strContext = "discador"; > > $numero = $i['telefone']; > > $ramal = $_SESSION['Ramal']; > > $strWaitTime = "30"; > > $strPriority = "1"; > > $strMaxRetry = "2"; > > $errno=0 ; > > $errstr=0 ; > > $strCallerId = "$numero"; > > $oSocket = fsockopen ("localhost", 5038, &$errno, &$errstr, 20); > > if (!$oSocket) { > > echo "$errstr ($errno)<br>n"; > > } else { > > fputs($oSocket, "Action: loginrn"); > > fputs($oSocket, "Events: onrn"); > > fputs($oSocket, "Username: $strUserrn"); > > fputs($oSocket, "Secret: $strSecretrnrn"); > > fputs($oSocket, "Action: originatern"); > > fputs($oSocket, "Channel: $strChannel/$numerorn"); > > fputs($oSocket, "Variable: RAMAL=$ramalrn"); > > fputs($oSocket, "WaitTime: $strWaitTimern"); > > fputs($oSocket, "CallerId: $strCallerIdrn"); > > fputs($oSocket, "Exten: srn"); > > fputs($oSocket, "Context: $strContextrn"); > > fputs($oSocket, "Priority: $strPriorityrnrn"); > > fputs($oSocket, "Action: Logoffrnrn"); > > sleep(2); > > fclose($oSocket); > > } > > echo "Ligando para o numero $numero...." ; > > exit() ; > > ?> > > Esse script eu peguei na internet e fiz pequenas modigicações! Tudo funciona perfeitamente, a ligação é feita e cai neste contexto onde é redirecionada para o atendente. > > [discador] > > exten => s,1,Set(CALLFILENAME=SAIDA${STRFTIME(,,-%H:%M:%S)}.wav) > > exten => s,2,MixMonitor(${CALLFILENAME}) > > exten => s,3,Dial(SIP/${RAMAL}) > > exten => s,4,StopMonitor() > > exten => s,5,Hangup() > > O problema é que se a ligação falhar, der ocupado ou qualquer outro status, o atendente não fica sabendo! > Qual a melhor maneira de pegar o status dessa chamada e jogar na tela pro atendente? AGI ou AMI? > > Agradeço qualquer ajuda. > > Victor Gonçalves > > Aktiv Telecom > > > > _______________________________________________ > KHOMP: completa linha de placas externas FXO, FXS, GSM e E1 > Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7 > Intercomunicadores para acesso remoto via rede IP e telefones IP > Conheça todo o portfólio em www.Khomp.com [1] > _______________________________________________ > Para remover seu email desta lista, basta enviar um email em branco para [email protected] Links: ------ [1] http://www.Khomp.com
_______________________________________________ KHOMP: completa linha de placas externas FXO, FXS, GSM e E1 Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7 Intercomunicadores para acesso remoto via rede IP e telefones IP Conheça todo o portfólio em www.Khomp.com _______________________________________________ Para remover seu email desta lista, basta enviar um email em branco para [email protected]

