[FRAGE] Quelle und Ziel eines Anrufs ändern

pwalker

Mitglied
Mitglied seit
27 Jun 2007
Beiträge
421
Punkte für Reaktionen
0
Punkte
0
Gemäss snom-Knowledgebase /Wiki soll sich mittels einer SIP INFO message Quelle und Ziel eines Anrufs ändern lassen:
http://wiki.snom.com/Old/FAQ#Q:_How_to_change_the_displayed_source_and_destination_data_of_a_call.3F
http://kb.snom.com/kb/index.php?View=entry&CategoryID=58&EntryID=15

Die SIP-Message Besteht im wesentlichen aus einem korrekten SIP-Header (Call-IDs, tags und branch korrekt angepasst, hoffe ich zumindest) und im Content je aus einer "From:" und "To:" Zeile.

Bei mir will das (mittels sipsak; während eines bestehenden SIP-Dialogs) einfach nicht klappen, im besten Fall kriege ich im SIP-Tace des Telefons ein "489 Bad Event".

Hat das schon mal jemand versucht / geschafft? Funktioniert dies bei aktuellen snom-Telefonen überhaupt noch?

[Update/Edit:]
Ich versuche, damit das Problem, dass bei einem attended Transfer die CallerID des vermittelnden Teilnehmers und nicht die des Anrufenden angezeigt wird.

Habe eben in Bristuff (aktuelle stable-Version 0.3.0-PRE-1y-j) gesehen, dass da mal so eine Funktion implementiert/vorgesehen war, der entsprechende Code ist jedoch auskommentiert.
Ein Hinweis, dass das mit aktuellen snom-Firmwaren nicht mehr funktioniert?

[Update/Edit 2:]
Im neusten Bristuff (0.3.0-PRE-1y-p) ist der entsprechende Code - leicht abgeändert (= korrigiert?) wieder enthalten. Ich hoffe, das in Kürze testen zu können.
Eintrag in den Release-Notes: "added proper caller ID handling for attended transfers (chan_sip, snom)"

Philipp
 
Zuletzt bearbeitet:

pwalker

Mitglied
Mitglied seit
27 Jun 2007
Beiträge
421
Punkte für Reaktionen
0
Punkte
0
BRIstuff 0.4 / Asterisk1.4

[Um den Thread mal wieder ein bisschen "hochzuheben" habe ich mir erlaubt, eine Antwort auf meine eigene Frage zu posten, anstattt Edit zu verwenden. Man möge mir das verzeihen...]
Mit BRIstuff 0.4.0-RC3b und dem angehängten Patch funktioniert das CallerID-Update zumindest auf snom 320 mit 7.1.33 nun tadellos. Der Code ist in BRIstuff 0.4.0-RC3b eigentlich schon drin, aber immer noch auskommentiert, dafür mein Patch. Zusätzlich wird die "message/sipfrag" noch so angepasst, dass sowohl CallerID-Name wie auch -Number aktualisiert werden sollten.

[Edit:] Noch was: Damit es funkioniert, muss in sip.conf (global oder pro peer) die Option "calleridupdate=info" gesetzt sein.
In BRIstuff 0.3 (Asterisk 1.2) müsste das Ganze mittlerweile mit drin sein, mein Patch damit CID-Name und -Num angezeigt wird folgt wohl in Kürze, d.h. sobald ich in testen kann.
 

Anhänge

Beastie

Neuer User
Mitglied seit
19 Okt 2005
Beiträge
42
Punkte für Reaktionen
0
Punkte
6
Hallo pwalker,

es gibt mittlerweile so viele Threads zu diesem Thema, dass man voellig durcheinander kommt :)
Hast Du das bereits erfolgreich mit Asterisk 1.4 testen koennen? Gibt es auch einen Patch, ohne
dass man gleich Bristuff verwenden muss?

Danke Dir!


Ciao,
-Martin.
 

pwalker

Mitglied
Mitglied seit
27 Jun 2007
Beiträge
421
Punkte für Reaktionen
0
Punkte
0
Der Patch läuft bei mir bzw. unserem Kunden soweit ich weiss problemlos.
Diese Funktionalität lässt sich natürlich auch ohne Bristuff implementieren, einen passenden Patch habe ich allerdings im Moment gerade nicht zur Hand. Im Wesentlichen muss (Stand Asterisk 1.4.21.2) in chan_sip.c ca. nach Zeile 13387 der entsprechende Code aus BRIstuff's 121-sip_changes.diff bzw. meinem Patch rein, also der ganze Kram mit (sinngemäss bzw. auszugsweise, d.h. nicht vollständig!!):
Code:
add_header(&req, "Content-Type", "message/sipfrag");
ast_build_string(&t, &maxbytes, "From: \"%s\" <%s>\r\n", peerd->cid.cid_name, peerd->cid.cid_num);
ast_build_string(&t, &maxbytes, "To: \"%s\" <%s>\r\n", peerc->cid.cid_name, peerc->cid.cid_num);
Daneben müssen - weiter oben in attempt_transfer() - noch ein paar Hilfsvariablen deklariert/initialisiert werden und das war's.
 

Beastie

Neuer User
Mitglied seit
19 Okt 2005
Beiträge
42
Punkte für Reaktionen
0
Punkte
6
Hi pwalker,

ich habs jetzt grad versucht, pr Hand eingebunden, aber beim compilieren bekoch ich folgenden Fehler:

[CC] chan_sip.c -> chan_sip.o
chan_sip.c: In function 'attempt_transfer':
chan_sip.c:13457: error: 'SIP_PAGE2_CID_UPDATE_INFO' undeclared (first use in this function)
chan_sip.c:13457: error: (Each undeclared identifier is reported only once
chan_sip.c:13457: error: for each function it appears in.)
make[1]: *** [chan_sip.o] Error 1
make: *** [channels] Error 2

Ich habe allerdings die Aenderungen nur in der Funktion attempt_transfer() durchgefuehrt,
Dein Patch betrifft ja diese Funktion. SIP_PAGE2_CID_* wird aber bereits viel weiter oben
definiert.... Wat nu? :)

Danke Dir!


Ciao,
-Martin.
 

pwalker

Mitglied
Mitglied seit
27 Jun 2007
Beiträge
421
Punkte für Reaktionen
0
Punkte
0
Stimmt, habe ich vergessen:
Die defines um Zeile 582
Code:
#define SIP_PAGE2_CID_*
und die dazugehörigen ast_clear_flags und ast_set_flags (siehe Bristuff) braucht es natürlich auch. Sind im Bristuff aber nicht auskommentiert und erscheinen deshalb nicht in meinem Patch.
Oder die unsauberere Variante:
Das ast_test_flag nach SIP_PAGE2_CID_UPDATE_INFO rauswerfen und dann wird die sipfrag-message immer gesendet (gibt aber glaub's evtl. Probleme bei gewissen Endgeräten; Polycom?)
 

Beastie

Neuer User
Mitglied seit
19 Okt 2005
Beiträge
42
Punkte für Reaktionen
0
Punkte
6
Nope, sind alles SNOMs.
Das heisst alle Bloecke, wie diesen:
Code:
+               } else if (!strcasecmp(v->name, "calleridupdate")) {
+                       if (!strcasecmp(v->value, "never")) {
+                           ast_clear_flag((&user->flags[1]), SIP_PAGE2_CID_UPDATE_INFO);
+                           ast_set_flag((&user->flags[1]), SIP_PAGE2_CID_UPDATE_NEVER);
+                       } else if (!strcasecmp(v->value, "info")) {
+                           ast_clear_flag((&user->flags[1]), SIP_PAGE2_CID_UPDATE_NEVER);
+                           ast_set_flag((&user->flags[1]), SIP_PAGE2_CID_UPDATE_INFO);
+                       }
muss ich noch mit einbauen, richtig?
Deshalb hattest Du in Deinem Post auch noch das Setting calleridupdate erwaehnt, oder?! :)


Ciao,
-Martin.
 

pwalker

Mitglied
Mitglied seit
27 Jun 2007
Beiträge
421
Punkte für Reaktionen
0
Punkte
0
Genau die.
Müssten ca. 3 ähnliche aber nicht identische Blöcke sein, ca. Zeilen 16520, 16850, 17099 plus das
Code:
ast_set_flag((&global_flags_page2), SIP_PAGE2_CID_UPDATE_NEVER);
müsste wohl eigentlich noch irgendwo in reload_config rein, doch da passt der BRIstuff-Patch irgendwie überhaupt nicht mehr zum Asterisk-Code... (und hat's bei mir auch nicht ein chan_sip.c rein geschafft?! - Bin gerade etwas verwirrt...)
 

Beastie

Neuer User
Mitglied seit
19 Okt 2005
Beiträge
42
Punkte für Reaktionen
0
Punkte
6
Die letzte Zeile, die Du erwaehnt hast, hab ich (noch) nicht eingebaut. Vielleicht liegt es daran,
dass es bei uns im Buero nicht geht?! Zumindest ist es momentan so: A ruft B an, B sieht, dass
A anruft. B ruft C an, C sieht, dass B anruft, B transferiert nun A zu C, aber bei C steht weiterhin
B im Display.
 

pwalker

Mitglied
Mitglied seit
27 Jun 2007
Beiträge
421
Punkte für Reaktionen
0
Punkte
0

Beastie

Neuer User
Mitglied seit
19 Okt 2005
Beiträge
42
Punkte für Reaktionen
0
Punkte
6
Yup, den Config-Eintrag hab ich drin und zwischendurch auch laengst mal "sip reload" gemacht :)

Ich hab es auch mittlerweile in global und peer drin, aber das aendert nichts. Nach einem
Transfer sehe ich bei C immer noch die Nummer von B und nicht die von A,des urspruenglichen
Anrufers.
 
Zuletzt bearbeitet:

EazyAdm

Neuer User
Mitglied seit
1 Jun 2005
Beiträge
109
Punkte für Reaktionen
0
Punkte
0
Hallo,

da ich gerade an diesem Thema in verbindung mit Asterisk 2.6.0.5 hänge wollte ich mal fragen ob es zu dem Thema was neues gibt.

Beatstie: Hast du es ohne Bristuff hinbekommen?

Danke

bye
eazy
 

Beastie

Neuer User
Mitglied seit
19 Okt 2005
Beiträge
42
Punkte für Reaktionen
0
Punkte
6
Hi eazy,

wenn ich mich recht erinner, hab ich es leider nicht hinbekommen. Die Kollegen
muessen nun damit leben ;-) Bristuff habe ich nicht in Verwendung genommen,
weil ich sonst keine Verwendung dafuer gehabt haette.


Ciao,
Martin.
 

EazyAdm

Neuer User
Mitglied seit
1 Jun 2005
Beiträge
109
Punkte für Reaktionen
0
Punkte
0
Bristuff ist doch auch nur für die Junghans karten da, oder habe ich da irgendwas falsch verstanden. Das dürfte reine SIP verbindung doch garnicht treffen.

Danke

bye
eazy
 

Beastie

Neuer User
Mitglied seit
19 Okt 2005
Beiträge
42
Punkte für Reaktionen
0
Punkte
6
Hi eazy,

> Bristuff ist doch auch nur für die Junghans karten da, oder habe ich da irgendwas falsch verstanden.

jein, zum Einen ist Bristuff natuerlich fuer Junghanns-Karten geeignet, da es ja von Junghanns fuer ihre
Karten entwickelt wird. Man kann mit den Treibern aber auch z.B. normale NoName-ISDN-Karten betreiben.

> Das dürfte reine SIP verbindung doch garnicht treffen.

Das Bristuff-Package besteht aus vielen Patches, die unter Anderem auch in den chan_sip, also den SIP-Channel,
ein paar weitere Funktionen reinpatchen, die wir im normalen Asterisk einfach vermissen.


Ciao,
Martin.
 

EazyAdm

Neuer User
Mitglied seit
1 Jun 2005
Beiträge
109
Punkte für Reaktionen
0
Punkte
0
Autsch, ok das wusste ich nicht ... ich dachte immer das alles was Bristuff mitbringt nur geht wenn es einen entsprechenden Channel betrifft.

Na dann weis ich ja was ich zu tun habe, ich könnte S******e schreien.

Vielen Dank für das füllen einer Wissenslücken *G*

bye
eazy
 

pwalker

Mitglied
Mitglied seit
27 Jun 2007
Beiträge
421
Punkte für Reaktionen
0
Punkte
0
Hi eazy,
> Das dürfte reine SIP verbindung doch garnicht treffen.
Das Bristuff-Package besteht aus vielen Patches, die unter Anderem auch in den chan_sip, also den SIP-Channel,
ein paar weitere Funktionen reinpatchen, die wir im normalen Asterisk einfach vermissen.
...vor allem bei Verwendung von snom-Telefonen.
Allerdings zweifle ich mittlerweile etwas an Bristuff, ist irgendwie komisch unterwegs... Änderungen von Anwendern kommen nicht rein, released wurde schon länger nicht mehr...
Für 1.6 gibt's dann übrigens keinen Bri, der 1.4er ist nicht ganz über alle Zweifel erhaben und "experimental", der 1.2 ist noch am brauchbarsten.
 
Zuletzt bearbeitet:

pwalker

Mitglied
Mitglied seit
27 Jun 2007
Beiträge
421
Punkte für Reaktionen
0
Punkte
0
...hier noch ein Patch dazu für einen "nackten" (d.h. ohne Bristuff) 1.2er-Asterisk (getestet mit Asterisk 1.2.24 mit "call answererd elsewhere"-Patch bereits drin, kann deshalb evtl. Offsets geben beim applyen)

Beatstie: Hast du es ohne Bristuff hinbekommen?
Müsste gehen, siehe meinen Patch für den 1.2er. Das sollte sich auch auf den 1.4er übertragen lassen. Da sollten nun auch alle benötigten Änderungen mit drin sein, in meiner "schrittweisen" Anleitung weiter oben wohl immer noch nicht... Sorry!
da ich gerade an diesem Thema in verbindung mit Asterisk 2.6.0.5
Cool, wo hast Du denn den her? ;-)
 

Anhänge

Zuletzt bearbeitet:
A

anhalter42

Guest
Aber eine dazu verwandte Frage: es soll ja, wenn man die richtige Call-ID weiß (und mitschickt) und sipfrag als Message-Typ angibt, möglich sein, während eines Gesprächs die Anzeige im Snom zu ändern.

Hier der entspr. Link zu voip-info.org (auch schon von Ottone - s. hier - gegeben)

hier der Link zur aktuellen Snom-FAQ

Meine Fragen:
- hat das schonmal jemand geschafft? Und wenn ja:
- Wie erhalte ich die jew. Call-ID? Manager Interface? Bin für jeden Tipp dankbar.

In diesem Thread läuft das Ganze auf ein Patchen des Asterisk hinaus, was ich aus gewissen Erwägungen heraus nicht tun möchte, dazumal (nur) das Update beim Transfer eines Anrufs behandelt wird und nicht das Update bei einem Pickup.
 

pwalker

Mitglied
Mitglied seit
27 Jun 2007
Beiträge
421
Punkte für Reaktionen
0
Punkte
0