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       }
 
Kostenlos!

Statistik des Forums

Themen
248,915
Beiträge
2,304,954
Mitglieder
378,626
Neuestes Mitglied
0xFaB1