indicate condition 9

awelzl

Neuer User
Mitglied seit
27 Mai 2006
Beiträge
55
Punkte für Reaktionen
0
Punkte
0
Wie kann ich diese Eingabe (Drücken der R-Taste) im SIP-Channel abfangen?

WARNING[2416]:chan_sip.c:3928 sip_indicate: Don't know how to indicate condition 9
WARNING[2416]: channel.c:2649 ast_indicate_data: Unable to handle indication 9 for 'SIP/XXXXX-08284358'

Leider habe ich weder hier noch im Asterisk.org Forum dazu was gefunden ...

Danke im Voraus!
 
Erstmal gar nicht. Es sei denn, Du programmierst in den Quellcode selbst hinein, was der Asterisk machen soll, wenn condition 9 auftritt. Bis jetzt kann der Server damit schlichtweg nix anfangen, weil er 9 nicht kennt.

Blick in den Quelltext der channel.c gefällig?

Zeile 2118 - 2121 bilden die entscheidende Stelle.

Code:
02086    if (!chan->tech->indicate || res) {
02087       /*
02088        * Device does not support (that) indication, lets fake
02089        * it by doing our own tone generation. (PM2002)
02090        */
02091       if (condition >= 0) {
02092          const struct tone_zone_sound *ts = NULL;
02093          switch (condition) {
02094          case AST_CONTROL_RINGING:
02095             ts = ast_get_indication_tone(chan->zone, "ring");
02096             break;
02097          case AST_CONTROL_BUSY:
02098             ts = ast_get_indication_tone(chan->zone, "busy");
02099             break;
02100          case AST_CONTROL_CONGESTION:
02101             ts = ast_get_indication_tone(chan->zone, "congestion");
02102             break;
02103          }
02104          if (ts && ts->data[0]) {
02105             ast_log(LOG_DEBUG, "Driver for channel '%s' does not support indication %d, emulating it\n", chan->name, condition);
02106             ast_playtones_start(chan,0,ts->data, 1);
02107             res = 0;
02108          } else if (condition == AST_CONTROL_PROGRESS) {
02109             /* ast_playtones_stop(chan); */
02110          } else if (condition == AST_CONTROL_PROCEEDING) {
02111             /* Do nothing, really */
02112          } else if (condition == AST_CONTROL_HOLD) {
02113             /* Do nothing.... */
02114          } else if (condition == AST_CONTROL_UNHOLD) {
02115             /* Do nothing.... */
02116          } else if (condition == AST_CONTROL_VIDUPDATE) {
02117             /* Do nothing.... */
[COLOR="Red"]02118          } else {
02119             /* not handled */
02120             ast_log(LOG_WARNING, "Unable to handle indication %d for '%s'\n", condition, chan->name);
02121             res = -1;[/COLOR]
02122          }
02123       }
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.