PJSIP Encabezado de registro personalizado

Estoy intentando configurarSORB comunicación con un servidor interno (usando la biblioteca PJSIP), sin embargo, este servidor requiere un campo de encabezado personalizado con un valor de encabezado especificado para elREGISTRATION llamada. Por ejemplo, llamaremos a este encabezado requeridoMyHeader.

De lo que he encontrado, lapjsua_acc_add()a función @ agregará una cuenta y la registrará en el servidor utilizando una estructura de configuración.

El parámetroreg_hdr_list de la estructura de configuración tiene la descripción:

Los encabezados SIP personalizados opcionales que se incluirán en la solicitud de registro.

Lo que suena exactamente como lo que necesito, sin embargo, no parece tener ningún efecto en la llamada en sí.

Esto es lo que tengo hasta ahora:

    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);

Desde el lado del servidor, no hay campos de encabezado adicionales ni nada. Y la estructura que se usa para definir el encabezado pjsua_hdr) no tienevalue o campo equivalente, así que incluso si creó el encabezado, ¿cómo establece el valor?

Aqu es la referencia para la definición de la lista de encabezados y lareferenci para la estructura del encabezado.

Editar Encontré la solución gracias a un compañero de trabajo:

    struct pjsip_generic_string_hdr CustomHeader;
    pj_str_t name = pj_str("MyHeader");
    pj_str_t value = pj_str("HeaderValue");
    pjsip_generic_string_hdr_init2(&CustomHeader, &name, &value);

    pj_list_push_back(&cfg.reg_hdr_list, &CustomHeader);

Esto parece funcionar como se esperaba.

Respuestas a la pregunta(1)

Su respuesta a la pregunta