Traza: » asterisk_funcion_agi » asterisk_funcion_alarmreceiver » asterisk_funcion_alsamonitor » asterisk_funcion_answer » asterisk_funcion_app_dbodbc » asterisk_funcion_appendcdruserfield » asterisk_funcion_asr » asterisk_funcion_authenticate » asterisk_funcion_background » asterisk_funcion_backgrounddetect
¡Actualmente no estás identificado! Introduce abajo tus datos de identificación para abrir una sesión. Necesitas tener las cookies activadas para identificarte.
Has olvidado tu contraseña? Obten una nueva.: Enviar nueva contraseña
ARREGLAR
Sinopsis Juega un sonido del fondo, saltando a una extensión en el recibo de los tonos de DTMF o a la extensión de la “charla” si detecta hablar.
Descripción BackgroundDetect (nombre de fichero [|sil [|min|max]])
BackgroundDetect es simmilar a los antecedentes. Juega detrás un nombre de fichero dado, esperando la interrupción de un dígito dado (el dígito debe comenzar el principio de una extensión válida, o será no hecha caso).
Durante el aparato de lectura del archivo, el audio se supervisa en la dirección de la recepción, y si un período del no-silencio que es ms “mínimo” mayor que con todo de menos que ms “máximo” es seguido por el ms del “sil” del silencio por lo menos entonces el aparato de lectura audio es abortado y de proceso de saltos a la extensión de la “charla” si está disponible. Si está sin especificar, sil, minuto, y defecto máximo a 1000, a 100, y al infinito respectivamente. Las vueltas -1 en retraso, y 0 en la terminación acertada del aparato de lectura sin la salida condiciona.
Ejemplo
[entrante] exten el => s, 1, respuesta exten el => s, 2, ResponseTimeout (5) exten el => s, 3, BackgroundDetect (el mymenu) exten el => s, 3, BackgroundDetect (el chooseSomething) exten el => t, 1, Goto (s, 2) exten el => i, 1, el aparato de lectura (pbx-inválido) exten el => i, 2, Goto (s, 2) exten el => 1.1, DoSomething exten el => 2.1, DoSomethingElse exten el => 3.1, dial (...) exten la charla del =>, 1, dial (...)
Detección básica del contestador automático
Estoy utilizando esto para hacer llamadas salientes para entregar mensajes del alarmar. Actúa si entrega un mensaje a una máquina contra ser humano, tan allí es diferentemente dos diversos contextos.
[detectar]
exten el => s, 1, DigitTimeout (5)
exten el => s, 2, ResponseTimeout (5)
exten el => s, 3, SetVar (MACHINE=0)
exten el => s, 4, respuesta
exten el => s, 5, BackgroundDetect (silence/5, 1000, 50)
exten el => s, 6, Noop (el contestador automático detectado)
exten el => s, 7, SetVar (MACHINE=1)
exten el => s, 8, BackgroundDetect (silence/30, 1000, 50, 30050)
exten el => s, 9, Noop (desear también de un mensaje)
exten el => s, 10, retraso
¿exten la charla del =>, 1, GotoIf ($ [$ {MÁQUINA} =1]? 2: 3)
exten la charla del =>, 2, Goto (la detectar-máquina, s, 1); esto es una máquina
exten la charla del =>, 3, Goto (detectar-humano, s, 1); esto es un ser humano
Teoría básica: ¿si hay ruido seguido por el silencio en el plazo de 5 segundos, asumir que es un ser humano (“hola? ”), si no, la espera hasta las paradas del ruido, y entonces comienza a dejar un mensaje para una máquina. Necesitas tener archivos de un par llamados silence/5.gsm y silence/30.gsm (véase el expediente del cmd del asterisco) en tu carpeta de los sonidos que sea silencio justo.
Necesita alguno que pellizca con la sincronización en BackgroundDetect. Un problema grande (por lo menos con mi sistema) es que tienes que ser bastante ruidoso, o él no detectará el ruido.
NOTA (de Scott Stingel www.evtmedia.com): El ejemplo antedicho es excelente, y debe trabajar muy bien. Supervisión confiable asumida de la respuesta, por ejemplo al usar una línea de salida de PRI/BRI, también hemos tenido buena suerte usando tiempos de una detección más cortos del pedacito para los seres humanos (3 segundos por ejemplo). Encontramos en la prueba que algunos de nuestros usuarios más secretos registran un saludo muy corto del contestador automático, ejemplo: “Éste es Bob. Sabes el taladro (la señal sonora!)” = 4 segundos
también, si la detección apropiada de la máquina de la respuesta es crítica a tu uso, puede ser que hagas lo que hicimos y modificamos el app_talkdetect, agregando una llamada al pbx_builtin_setvar_helper para fijar una variable del canal que contenía la longitud real de la voz detectada, que se puede entonces probar en tu dialplan. Puedes entonces utilizar una sola llamada a BackgroundDetect (con un período más largo del silencio), y no hay necesidad de definir extensiones de la “charla”. ACTUALIZACIÓN: Parece alguien agregó amablemente el variable ya mencionado, nombrado TALK_DETECTED, a este uso. Por lo tanto, debes poder utilizarla para determinar la longitud (en el milisegundo) de la voz detectada.
Ver también