Asterisk Code erweitern aber wie??

swaesch

Neuer User
Mitglied seit
12 Aug 2005
Beiträge
110
Punkte für Reaktionen
0
Punkte
0
Mit pri debug span 1 bekomme ich folgende Ausgabe:

Code:
1 < Protocol Discriminator: Q.931 (8)  len=38
1 < Call Ref: len= 1 (reference 1/0x1) (Originator)
1 < Message type: SETUP (5)

Nun möchte ich meinem Asterisk eine weiter Variable hinzufügen, die die Länge der Call Reference beinhaltet.

Möchte damit eine Unterscheidung zwischen ISDN Basisanschluß und Primärmultiplexanschluß bewirken.

Hat jemand Informationen, wie man sich am besten in den Asterisk Code einarbeitet, bzw. wie man am schnellsten die benötigte Stelle findet an der man etwas drehen will??


EDIT:

Hab jetzt in den Sourcen von libpri-1.2.3 was gefunden:

Datei: q931.c Zeile 2260

Code:
pri_message(pri, "%c Protocol Discriminator: %s (%d)  len=%d\n", c, disc2str(h->pd), h->pd, len);
pri_message(pri, "%c Call Ref: len=%2d (reference %d/0x%X) (%s)\n", c, [b]h->crlen[/b], q931_cr(h) & 0x7FFF, q931_cr(h) & 0x7FFF, (h->crv[0] & 0x80) ? "Terminator" : "Originator");


bzw. Zeile 2040
Code:
static inline int q931_cr(q931_h *h)
{
	int cr = 0;
	int x;
	if (h->crlen > 3) {
		pri_error(NULL, "Call Reference Length Too long: %d\n", h->crlen);
		return -1;
	}
	switch (h->crlen) {
		case 2: 
			for (x=0;x<h->crlen;x++) {
				cr <<= 8;
				cr |= h->crv[x];
			}
			break;
		case 1:
			cr = h->crv[0];
			if (cr & 0x80) {
				cr &= ~0x80;
				cr |= 0x8000;
			}
			break;
		default:
			pri_error(NULL, "Call Reference Length not supported: %d\n", h->crlen);
	}
	return cr;
}

Für mich ist hier der Inhalt von h->crlen interessant, nur habe ich hier wiederum nur einen Hinweis auf dies:
void q931_dump(struct pri *pri, q931_h *h, int len, int txrx)
 
Zuletzt bearbeitet:
Wozu brauchst Du die Unterscheidung? Wie es jetzt im Sourcecode zu ändern ist kann ich nicht sagen, aber sicher geht es auch einfacher ...
 
Die Unterscheidung will ich dafür nutzen, dass ich Anrufe ohne Nummer von einem Primärmultiplexanschluß direkt abweise oder per Voicemail abhandle.

Will hiermit eine besser Unterscheidung treffen wen ich abweise, wegen lässtigen Anrufen von Callcentern.


Einfacher ist ja gut und recht, aber den einzigen Unterschied, den ich zwischen den beiden Anschlußvarianten gefunden habe ist nun mal die Call Reference Length.

Diese ist beim Basisanschluß 1 Byte(len=1) und beim Primärmultiplexanschluß 2Byte (len=2)
 

Neueste Beiträge

Statistik des Forums

Themen
246,811
Beiträge
2,257,794
Mitglieder
374,893
Neuestes Mitglied
maryjames44
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.