Mit pri debug span 1 bekomme ich folgende Ausgabe:
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
bzw. Zeile 2040
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)
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: