En-tête d'logging personnalisé PJSIP

Je tente de configurer la communication SIP avec un server interne (en utilisant la bibliothèque PJSIP), cependant, ce server nécessite un champ d'en-tête personnalisé avec une valeur d'en-tête spécifiée pour l'appel REGISTRATION . Par exemple, nous allons appeler cet en-tête obligatoire MyHeader .

D'après ce que j'ai trouvé, la fonction pjsua_acc_add() appenda un count et l'savea sur le server en utilisant une structure de configuration.

Le paramètre reg_hdr_list de la structure config a la description:

Les en-têtes SIP personnalisés facultatifs à mettre dans la request d'logging.

Ce qui ressemble exactement à ce dont j'ai besoin, mais ne semble pas avoir d'effet sur l'appel lui-même.

Voici ce que j'ai jusqu'ici:

  pjsua_acc_config cfg; pjsua_acc_config_default(&cfg); //...Some other config stuff related to the server... pjsip_hdr test; test.name = pj_str("MyHeader"); test.sname = pj_str("MyHdr"); test.type = PJSIP_H_OTHER; test.prev = cfg.reg_hdr_list.prev; test.next = cfg.reg_hdr_list.next; cfg.reg_hdr_list = test; pj_status_t status; status = pjsua_acc_add(&cfg, PJ_TRUE, &acc_id); 

Du côté server, il n'y a aucun champ d'en-tête supplémentaire ou quoi que ce soit. Et la structure qui est utilisée pour définir l'en-tête ( pjsua_hdr ) n'a pas de value ou de champ équivalent, donc même si elle a créé l'en-tête, comment définit-elle la valeur?

Voici la réfrence pour la définition de la list d'en-tête et la reference pour la structure d'en-tête.

Edit: J'ai trouvé la solution grâce à un collègue:

  struct pjsip_generic_ssortingng_hdr CustomHeader; pj_str_t name = pj_str("MyHeader"); pj_str_t value = pj_str("HeaderValue"); pjsip_generic_ssortingng_hdr_init2(&CustomHeader, &name, &value); pj_list_push_back(&cfg.reg_hdr_list, &CustomHeader); 

Cela semble fonctionner comme prévu.

Il suffit de citer l'OP lorsqu'il a trouvé la solution , mais il a oublié de l'append comme réponse:

Edit: J'ai trouvé la solution grâce à un collègue:

 struct pjsip_generic_ssortingng_hdr CustomHeader; pj_str_t name = pj_str("MyHeader"); pj_str_t value = pj_str("HeaderValue"); pjsip_generic_ssortingng_hdr_init2(&CustomHeader, &name, &value); pj_list_push_back(&cfg.reg_hdr_list, &CustomHeader); 

Cela semble fonctionner comme prévu.