[AsteriskBrasil] RES: Desenvolvimento de nova funcionalidade
Leonardo Gomes Figueira
sabbathbh.lists em gmail.com
Quarta Março 28 16:27:18 BRT 2007
Moacir O. de Souza Junior - Personalsoft Sistemas Ltda. escreveu:
> Tenho o seguinte problema, envio um comando (ORIGINATE) para o Asterisk.
> Quando eu mando o comando o Manager começa (ou até mesmo já estava
> retornando os eventos) a disparar vários eventos conforme as coisas vão
> acontecendo. O meu problema é que eu preciso saber, dentro dos eventos
> retornados, quais são os eventos que ocorreram por causa do comando que eu
> enviei. Acontece que TODOS os eventos são retornados pelo manager e eu não
> tenho como saber o que os está originando.
>
> O que eu pensei, inicialmente, era colocar o ActionID em todos os eventos.
> Ou seja, quando o evento X for proveniente de ação que foi solicitada que
> continha um actionID este ActionID ser retornado em todos os eventos dali
> para frente. Caso o evento for proveniente de uma ação que não contem
> ActionID, logo não tem actionID para retornar.
Se voce está usando "async: yes" no Originate ele vai retornar no
"Event: OriginateSuccess" o "Uniqueid:" do channel criado, com isso voce
consegue monitorar os eventos relacionados a este Uniqueid após o
primeiro lado da ligação atender (que é quando ele retorna o
OriginateSuccess).
Agora se voce precisa monitorar o que acontece ANTES do primeiro lado
atender já fica um pouco mais complicado pois voce teria que rastrear
talvez pelo nome do canal que é criado pelo seu Originate.
Isso acima vale para o Asterisk 1.2. Talvez no 1.4 isso tenha melhorado,
talvez no primeiro Response já tenha alguma informação para rastrear
como o channel ou uniqueid, já verificou ?
De qualquer forma acho que não é necessário alterar o código do Asterisk
para isso que voce precisa.
Leonardo
Mais detalhes sobre a lista de discussão AsteriskBrasil