O Asterisk (pelo menos o 1.4) não suporta receber o evento 'message-summary' via NOTIFY como você ta enviando. É melhor procurar outra abordagem ou implementar essa notificação entrante de voicemail você mesmo :-)
-- Alexandre Abreu RedT Telecom http://www.redt.com.br -----Mensagem original----- De: [email protected] [mailto:[email protected]] Em nome de [email protected] Enviada em: terça-feira, 26 de maio de 2009 18:47 Para: [email protected] Assunto: [AsteriskBrasil] [mensagem grande] Ecaminhamento (não solicitado ) de notify Olá Amigos, Tenho um cenários que são dois asterisk, um é onde os clientes ficam logados e por onde as ligações são roteadas , o outro é um "servidor de aplicação" para voicemail, conferencia e etc.... Eu estou tentando fazer com que o servidor de aplicação encaminhe uma mensagem para os usuários SIP contendo a informação de voicemail, mas não estou tendo muito sucesso, eu estou fazendo a verificação através do servidor de aplicação e gerando um arquivo para ser enviado com o sipsak, porém quando mando esta mensagem para o asterisk onde estão os usuários sempre recebo 489 Bad Event como retorno, se eu mando diretamente para o usuário em questão eu recebo "received ICMP message (type: 3, code: 3): from XXX.XXX.XXX.XXX". Infelizmente eu preciso manter separado o correio de voz do roteamento, estou estudando ainda como fazer isso utilizando o kamailio ou opensips , mas no momento é asterisk com asterisk mesmo. Abaixo coloco o trecho do script referente a pegar os dados e então gerar o arquivo a ser enviado. --------------------------------- for contas in $USERS; do #REALUSER="/usr/bin/perl /usr/local/bin/verifica-vm-alias $contas" REALUSER=$(/usr/bin/perl /usr/local/bin/verifica-vm-alias $contas) if [ -n "$REALUSER" ]; then #echo "OK: $REALUSER" MAILBOX=$VM_ROOT/$VM_CONTEXT/$REALUSER if [ ! -d ${MAILBOX} ]; then logger -t check_vm "Erro: ${MAILBOX} nao existe" continue fi TOTAL_MESSAGE=0 NEW_MESSAGES=0 OLD_MESSAGES=0 if [ -d ${MAILBOX}/INBOX ]; then tmp=( $( ls ${MAILBOX}/INBOX/*.txt 2>/dev/null ) ) NEW_MESSAGES=${#tmp[*]} else NEW_MESSAGES=0 fi if [ -d ${MAILBOX}/Old ]; then tmp=( $( ls ${MAILBOX}/Old/*.txt 2>/dev/null ) ) OLD_MESSAGES=${#tmp[*]} else OLD_MESSAGES=0 fi TOTAL_MESSAGES=$(($NEW_MESSAGES + $OLD_MESSAGES)) if [ "$NEW_MESSAGES" == "0" ]; then HAS_NEW="no" else HAS_NEW="yes" fi CONTENT_LENGTH=$(( 34 + ${#HAS_NEW} + ${#NEW_MESSAGES} + ${#OLD_MESSAGES} )) SEQUENCE=$( printf "%06d" $RANDOM ) ( cat <<-EOM NOTIFY sip:${realus...@${domain} SIP/2.0 From: <sip:${sip_fr...@${sip_server}> To: <sip:${realus...@${domain}> Contact: <sip:${realus...@${sip_server}> Call-ID: ${sequen...@${sip_server} CSeq: ${SEQUENCE} NOTIFY Event: message-summary Content-Type: application/simple-message-summary Content-Length: ${CONTENT_LENGTH} Messages-Waiting: ${HAS_NEW} Voicemail: ${NEW_MESSAGES}/${OLD_MESSAGES} EOM ) > out.msg cat out.msg | /usr/bin/sipsak -vvv -s sip:${realus...@${domain} -f - if [ $? -ne 0 ]; then logger -t check_vm "Erro: sipsak nao foi enviado para $REALUSER" fi fi done exit 0 ------------------------------- Abaixo a mensagem gerada no arquivo out.msg NOTIFY sip:_con...@_servidor_ SIP/2.0 From: <sip:aster...@_servidor_apl_> To: <sip:_con...@_servidor_> Contact: <sip:_con...@_servidor_apl_> Call-ID: 004...@_servidor_apl_ CSeq: 004355 NOTIFY Event: message-summary Content-Type: application/simple-message-summary Content-Length: 39 Messages-Waiting: yes Message-Account: sip:_con...@_servidor_ Voice-Message: 2/0 Abaixo acrescento também o log do sipsak No SRV record: _sip._tcp.srv1.55voip.com No SRV record: _sip._udp.srv1.55voip.com using A record: srv1.55voip.com fqdnhostname: 127.0.1.1 our Via-Line: Via: SIP/2.0/UDP 127.0.1.1:58707;branch=z9hG4bK.3111a880;rport;ali as New message with Via-Line: NOTIFY sip:_con...@_servidor_ SIP/2.0 Via: SIP/2.0/UDP 127.0.1.1:58707;branch=z9hG4bK.3111a880;rport;alias From: <sip:aster...@_servidor_apl_> To: <sip:_con...@_servidor_> Contact: <sip:_con...@_servidor_apl_> Call-ID: 022...@_servidor_apl_ CSeq: 022643 NOTIFY Event: message-summary Content-Type: application/simple-message-summary Content-Length: 39 Messages-Waiting: yes Message-Account: sip:_con...@_servidor_ Voice-Message: 2/0 request: NOTIFY sip:_con...@_servidor_ SIP/2.0 Via: SIP/2.0/UDP 127.0.1.1:58707;branch=z9hG4bK.3111a880;rport;alias From: <sip:aster...@_servidor_apl_> To: <sip:_con...@_servidor_> Contact: <sip:_con...@_servidor_apl_> Call-ID: 022...@_servido_apl_ CSeq: 022643 NOTIFY Event: message-summary Content-Type: application/simple-message-summary Content-Length: 39 Messages-Waiting: yes Message-Account: sip:_servidor_con...@_servidor_apl_ Voice-Message: 2/0 send to: UDP:_SERVIDOR_:5060 message received: SIP/2.0 489 Bad event Via: SIP/2.0/UDP 127.0.1.1:58707;branch=z9hG4bK.3111a880;alias;received=_SERVIDOR_;rport=5870 7 From: <sip:aster...@_servidor_apl_> To: <sip:_con...@_servidor_>;tag=as005f3511 Call-ID: 022...@_servidor_apl_ CSeq: 022643 NOTIFY User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Length: 0 ** reply received after 0.908 ms ** SIP/2.0 489 Bad event final received Amigos, agradeço se alguém souber dar uma ajuda. _______________________________________________ Openmoko Freerunner, primeiro telefone open source, disponível no Brasil rodando o Android da Google. http://www.neodroid.com Compre uma camiseta da AsteriskBrasil.org! http://www.voipmania.com.br Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede Freenode.net: #asterisk-br _______________________________________________ Lista de discussões AsteriskBrasil.org [email protected] http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

