diff --git a/src/csl_dha.c b/src/csl_dha.c index 3d7234a..d9bc328 100644 --- a/src/csl_dha.c +++ b/src/csl_dha.c @@ -24,6 +24,7 @@ #include #include +#include #include @@ -43,6 +44,8 @@ static BIT_STRING_t dial_version1 = { .bits_unused = 7, }; +static const uint8_t tcap_id_as_dialogue[] = { 0, 4, 0, 0, 1, 0, 1, 3 }; + /* Extract the Application Context Name and User Info from a DialoguePDU */ static int extract_appctx_uinfo(OBJECT_IDENTIFIER_t **app_ctx_name, struct user_information **user_info, struct DialoguePDU *dial_pdu) @@ -150,6 +153,11 @@ int tcap_csl_tc_begin_req(struct tcap_dialogue *td, OBJECT_IDENTIFIER_t *app_ctx dial = talloc_zero(ext, DialoguePDU_t); dial->present = DialoguePDU_PR_dialogueRequest; + OBJECT_IDENTIFIER_set_arcs(&ext->oid, + &tcap_id_as_dialogue, + sizeof(tcap_id_as_dialogue[0]), + ARRAY_SIZE(tcap_id_as_dialogue)); + aarq = &dial->choice.dialogueRequest; if (user_info) aarq->user_information = user_info; @@ -329,6 +337,12 @@ static ANY_t *gen_ext_AARE(struct tcap_dialogue *td, OBJECT_IDENTIFIER_t *app_ct dial = talloc_zero(ext, DialoguePDU_t); dial->present = DialoguePDU_PR_dialogueResponse; + + OBJECT_IDENTIFIER_set_arcs(&ext->oid, + &tcap_id_as_dialogue, + sizeof(tcap_id_as_dialogue[0]), + ARRAY_SIZE(tcap_id_as_dialogue)); + aare = &dial->choice.dialogueResponse; /* Set protocol version 1 */ aare->protocol_version = &dial_version1;