Como saber qual número foi discado na chamada recebida

1

O cenário

  • No Reino Unido.
  • Eu tenho uma linha telefônica (BT openreach) que entra em um Cisco SPA232D. Essa linha telefônica pode ser tocada em um número, digamos 01235AAAAAA.
  • Eu tenho um número virtual, 01235BBBBBB, que é redirecionado para essa linha. Quando as pessoas ligam para esse número, elas são redirecionadas para minha linha telefônica. O identificador de chamadas deles é preservado e eu posso dizer quem está ligando.
  • A linha está conectada a um SPA232D que faz PSTN para VoIP bem e transmite a chamada para o meu servidor FreePBX / Asterisk.

O requisito

Eu gostaria de diferenciar como eu ligo as chamadas dependendo se o chamador tocou A ou B. Como configuro o SPA232 para passar esta informação para o Asterisk / FrePbX para que ele possa lidar com as chamadas de maneira diferente.

A informação

O plano de discagem no SPA para PSTN para VoIP é:

(S0:@192.168.1.XXX)

As primeiras linhas do log asterisco para uma chamada recebida, seja ela direta ou redirecionada, são:

VERBOSE[1496][C-000000f7] netsock2.c: == Using SIP RTP TOS bits 184
VERBOSE[1496][C-000000f7] netsock2.c: == Using SIP RTP CoS mark 5
VERBOSE[12405][C-000000f7] pbx.c: -- Executing [+441235AAAAAA@from-trunk-sip-landline:1] Set("SIP/landline-00000226", "GROUP()=OUT_2") in new stack
VERBOSE[12405][C-000000f7] pbx.c: -- Executing [+441235AAAAAA@from-trunk-sip-landline:2] Goto("SIP/landline-00000226", "from-trunk,+441235AAAAAA,1") in new stack
VERBOSE[12405][C-000000f7] pbx.c: -- Goto (from-trunk,+441235AAAAAA,1)
VERBOSE[12405][C-000000f7] pbx.c: -- Executing [+441235AAAAAA@from-trunk:1] Set("SIP/landline-00000226", "__FROM_DID=+441235AAAAAA") in new stack

Olhando para isso, se a chamada é direta para minha linha ou chegou através do serviço de encaminhamento, no momento em que ela chega ao asterisco, ela tem o mesmo DID: o do telefone fixo.

    
por Neil Townsend 27.04.2015 / 13:57

0 respostas