.titleBar { margin-bottom: 5px!important; }

Asterisk 1.4 chan_capi CALLERID nicht gesetzt

Dieses Thema im Forum "Asterisk ISDN mit CAPI (chan_capi, chan_capi_cm)" wurde erstellt von tjakob, 30 Dez. 2006.

  1. tjakob

    tjakob Neuer User

    Registriert seit:
    3 Nov. 2004
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo zusammen,

    ich habe mir testweise Asterisk 1.4 mit dem chan_capi-HEAD (30.12.06) installiert.
    Es läuft auch soweit alles, allerdings wird bei eingehenden ISDN-Anrufen die CALLERID nicht übertragen, d.h. CALLERID(all), CALLERID(num) usw. sind leer.

    Bei eingehenden SIP-Anrufen wird die CALLERID, wie gewohnt angezeigt.

    exten => 614128,1,NoOp(Calleridnum ist ${CALLERID(num)})

    ergibt:

    -- Executing [614128@capi-in:1] NoOp("CAPI/ISDN1/614128-0", "Calleridnum ist ") in new stack

    Die Rufnummer scheint aber richtig am chan-capi erkannt zu werden:

    == ISDN1#02: Incoming call '555114433' -> '614128'

    und:

    CONNECT_IND ID=002 #0x0f83 LEN=0047
    Controller/PLCI/NCCI = 0x101
    CIPValue = 0x10
    CalledPartyNumber = <c1>614128
    CallingPartyNumber = <21 83>555114433
    CalledPartySubaddress = default
    CallingPartySubaddress = default
    BC = <80 90 a3>
    LLC = default
    HLC = <91 81>
    AdditionalInfo = default


    Wird die CALLERID jetzt bei chan-capi anders übergeben? Ich konnte im Forum oder in der Readme dazu nichts finden.

    Für einen Tip wäre ich dankbar.

    Gruß
    Thomas
     
  2. blauerpeti

    blauerpeti Mitglied

    Registriert seit:
    28 Juni 2005
    Beiträge:
    723
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
  3. tjakob

    tjakob Neuer User

    Registriert seit:
    3 Nov. 2004
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke, den Thread hatte ich mir schon angesehen CALLERIDNUM habe ich ja bereits durch CALLERID(num) ersetzt, auch alles andere habe ich probiert:

    * name: alphanumeric string
    * number: digits only
    * all: a callerid string with the number specified between angle-brackets, e.g. "Some User <123>"

    alles leer.

    Er gibt auch keinen Fehler über "capi debug" aus, auch im Log ist nichts zu sehen. Ich habe die Ausgabe bei 1.2.14 und 1.4 bei eingehenden ISDN-Anrufen verglichen, mir ist kein Unterschied aufgefallen, außer das eben keine CALLERID vom chan_capi kommt.
     
  4. jcaron

    jcaron Neuer User

    Registriert seit:
    17 Aug. 2004
    Beiträge:
    26
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Schon eine Lösung gefunden? Ich habe noch nichts gefunden...
     
  5. pbxmaster

    pbxmaster Neuer User

    Registriert seit:
    4 Dez. 2006
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Lösung (Hack)

    Hallo... die neue Asterisk Version (1.4.0) verhält sich an einer Stelle (ast_channel_alloc) nicht so wie es zu erwarten ist. Daher muss man in der chan_capi.c alte Methoden "reaktivieren". Dazu einfach in die Zeilen 2177 und 2184 der aktuellen chan_capi.c TRUNK Version auskommentieren, neu compilieren und installieren, asterisk neu starten und schon sollte man wieder CALLERID's haben... das ganze sollte dann in etwa so aussehen:

    cc_copy_string(tmp->context, i->context, sizeof(tmp->context));

    //#ifndef CC_AST_HAS_EXT_CHAN_ALLOC
    if (!ast_strlen_zero(i->cid)) {
    if (tmp->cid.cid_num) {
    free(tmp->cid.cid_num);
    }
    tmp->cid.cid_num = strdup(i->cid);
    }
    //#endif
    if (!ast_strlen_zero(i->dnid)) {
     
  6. blauerpeti

    blauerpeti Mitglied

    Registriert seit:
    28 Juni 2005
    Beiträge:
    723
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Dein erster Beitrag..!!
    ...mal aus Interesse, hast Du jetzt die zig 1000 Zeilen "durchgeblättert" oder woher kommt der Tip.
     
  7. pbxmaster

    pbxmaster Neuer User

    Registriert seit:
    4 Dez. 2006
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Nun ja... ;)
    ...ich hatte das gleiche Problem... bin beim googlen hier auf diese Seite gestossen, konnte aber auch sonst niergends eine Lösung finden.
    Dann hab ich mir eben in den Sources angeschaut, wo die Callerid gesetzt wird... und wie es "früher" mal war, als es noch funktioniert hat.
    Daraus konnte man dann "eigentlich" ziemlich schnell einen "Hack" (mehr ist es nämlich nicht) machen. Der eigentliche Fehler wird "irgendwo" in asterisk in Zusammenhang mit dem manager_event "Newchannel" liegen...