2010-09-02 17 views
7

Escribí plan de marcado simple en asterisco. ¡Este objetivo del plan de marcado es verificar la identificación de la persona que llama de la llamada entrante y el hangup específico :)!asterisco anti ex novia plan de marcado?

pero este plan de marcado interrumpe todas las llamadas entrantes con diferente identificador de llamadas.
Entonces, ¿qué debo hacer? ; (

[general] 
    static=yes 
    writeprotect=yes 
    autofallthrough=yes 
    clearglobalvars=no 
    priorityjumping=yes 
    include "exten_gvars.inc" 

    [macro-queue] 
    exten => s, 1, Queue(${ARG1}) 

    [default] 
    exten => s, 1, Answer 
    exten => s/9999, 2 ,Hangup 
    exten => s, 2, BackGround(welcome) 
    exten => s, 3, Macro(queue,operator) 

Editar

de que cambie de plan de marcado para esto, pero no de trabajo, colgar llamadas entrantes después de dos pitido (sé que se producen primo un error en mi plan de marcación)

[general] 
static=yes 
writeprotect=yes 
autofallthrough=yes 
clearglobalvars=no 
priorityjumping=yes 
#include "exten_gvars.inc" 

[macro-monitor] 
exten => s, 1, MixMonitor(${UNIQUEID}.wav) 
exten => s, 2, SetCIDName(${UNIQUEID}#${CALLERIDNAME},a) 

[macro-defaultLine] 
exten => s, 1, Macro(monitor) 
exten => s, 2, Dial(SIP/${ARG1},60,T) 

[macro-queue] 
exten => s, 1, Macro(monitor) 
exten => s, 2, Queue(${ARG1}) 

[inbound] 
exten => _XX, 1, Macro(defaultLine,${EXTEN}) 

[default] 
exten => 123,1,GotoIf($[${CALLERID(num)} = XX]?reject:allow) 
exten => 123,n(allow),Answer 
exten => 123,n,BackGround(welcome) 
exten => 123,n,Macro(queue,operator) 
exten => 123,n(reject),BackGround(WTF) 
exten => 123,n,Hangup() 
include => inbound 
!
+0

así que vamos a hacer esta pregunta más difícil !!!! Quiero que si llame al 9999, primero escuche un archivo de sonido y luego cuelgue. – Rev

+0

Por favor, formule su pregunta como algo mejor que "Entonces, ¿qué hago?" Si esto no es una pregunta de programación, quizás http://superuser.com sea un lugar mejor. – Gabe

Respuesta

3

Usted no tiene un paso 2 para otros callerids y autofalltrhough está habilitada, lo que significa (en 1.6) que la llamada será dado de baja después del paso 1.

[default] 
exten => s, 1, Answer 
exten => s/9999, 2 ,Hangup 
exten => s, 2, NoOp 
exten => s, 3, BackGround(welcome) 
exten => s, 4, Macro(queue,operator) 

Editar: ¿Estás seguro de que el identificador de llamada es EXACTELLY 9999? Trate de reemplazar esa línea con

exten => s, 2, NoOp((${CALLERID(all)}) 

a continuación, busque en la consola y ver lo que el identificador de llamadas es.

uso:

asterisk -r 

a continuación, introduzca:

core set verbose 5 

también, entre:

show dialplan 

y ver si el plan de marcado está cargada correctamente en asterisco

+0

Cambio mi plan de marcado como dijiste. pero ahora, para el 9999, la llamada al número no colgó y todas las llamadas igual que el número 9999, vaya al paso de fondo. – Rev

+0

gracias, pero ¿hay alguna solución para ver el identificador de llamadas entrantes o para llamadas en línea? reviso mi puerta de enlace de VoIP y veo el número, e ingreso ese número en mi plan de marcado. gracias por su atención – Rev

+0

El NoOp ($ {CallerID (all)}) mostrará el identificador de llamadas en la consola del asterisco cuando se ejecute ese paso. – Radu094

13

Aquí es tu anti ex novia Dailp lan, suponiendo que xxxxx es el número de ex-novias

exten => 123,1,GotoIf($[${CALLERID(num)} = xxxxx]?reject:allow) 
exten => 123,n(allow),Dial(Zap/4) 
exten => 123,n,Hangup() 
exten => 123,n(reject),Playback(abandon-all-hope) 
exten => 123,n,Hangup() 

la esperanza que esto le ayuda

+0

gracias, pero ver mi edición. su solución no funciona – Rev

+2

Cómo me ha llegado esta respuesta tantos votos a favor está más allá de mí. Veo este tipo de plan de marcado todo el tiempo. Chicos, ¿qué pasa cuando tienes 2 ex novias? o 50? Cuántas veces necesitó para seleccionar un solo número. La mayoría de las veces es una lista de números y una lista de prefijos. El GotoIf no funcionará. Utilice el plan de marcado como estaba previsto, o pase a un script AGI si le apetece programar. – Radu094

0

En primer lugar, parece que no entiendo muy bien cómo funciona el asterisco dialplan. El bloque de código que colocaste allí es simplemente incorrecto, Asterisk no se quejará, ya que se supone que dialplan no debe hacerlo.

Vamos a examinar uno por uno:

[macro-queue] 
exten => s, 1, Queue(${ARG1}) 

[default] 
exten => s, 1, Answer 
exten => s/9999, 2 ,Hangup 
exten => s, 2, BackGround(welcome) 
exten => s, 3, Macro(queue,operator) 

La razón de lo anterior que está mal es debido al hecho de que no se puede poner un juego CALLERID en una sola línea de la extensión - es debe ser todo el camino. Así que, técnicamente, se necesitaría:

[macro-queue] 
exten => s, 1, Queue(${ARG1}) 

[default] 
exten => s/9999, 1, Answer 
exten => s/9999, 2 ,Hangup 
exten => s/9999, 2, BackGround(welcome) 
exten => s/9999, 3, Hangup 

exten => s, 1, Answer 
exten => s, 2 ,Hangup 
exten => s, 2, BackGround(welcome) 
exten => s, 3, Macro(queue,operator) 

Ahora, eso no es una forma correcta de hacer esto - simplemente porque se le replicando líneas una y otra vez. La forma correcta de hacerlo es muy similar a la respuesta anterior, sin embargo, esto es lo que haría:

exten => s, 1, Answer 
exten => s, n, Gotoif($["${CALLERID(num)}" = "9999"]?reject:continue) 
exten => s, n(continue), Background(Welcome) 
exten => s, n, Macro(queue, operator) 
exten => s, n(reject), Hangup() 

Ahora, puede ampliar los distintos números de CALLERID que desea bloquear. De nuevo, suponiendo que este es el resultado que buscabas lograr.

0

Es muy sencillo:

[default] 
    exten => s/9999,1,Hangup 

    exten => s,1,Answer 
    exten => s,2,BackGround(welcome) 
    exten => s,3,Macro(queue,operator)