Two instances running side by side

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ok, I kinda expected that answer....

It would be nice because  i've build a module  separately from the main 
application, and now I was trying to integrate everything. Once the main 
app is a bit complex I didn't want to be messing around too much..... 
But now I guess will happen :-P

Thanks anyway



Benny Prijono wrote:
> On 3/19/08, Andr? Teixeira <coelho at wit-software.com> wrote:
>   
>> Hi,
>>
>>  Is it possible to have two pjsip instances running simultaneously in the
>>  same app?
>>     
>
> No, not possible, sorry. We have some global variables lying around,
> so this is not possible.
>
>   
>>  I want to have two "SIP engines" running side by side (don't ask why :p)
>>     
>
> I'm afraid I have to ask why. :)
>
> Cheers,
>  -benny
>
>
>   
>>  After SIPEngine_1 is initialized and running fine,  I try to launch
>>  SIPEngine_2 but the problems start when I try to  Init the transaction
>>  layer...
>>
>>  This is what I try to run when start SIP Engine 2
>>
>>  ------------------------------------------------------------------------------
>>
>>     pj_status_t status;
>>
>>      /* Must init PJLIB first: */
>>  //     status = pj_init();
>>  //  pj_assert(status == PJ_SUCCESS);
>>
>>
>>      /* Then init PJLIB-UTIL: */
>>  //    status = pjlib_util_init();
>>  //  pj_assert(status == PJ_SUCCESS);
>>
>>
>>     pj_thread_desc desc;
>>     pj_thread_t *this_thread;
>>
>>     status = pj_thread_register("Thread FaxSipEngine", desc, &this_thread);
>>     if (status != PJ_SUCCESS) {
>>            Logger::instance->Debug("FAXSIPENGINE | Unable to register
>>  pj_thread");
>>         return;
>>     }
>>
>>      /* Must create a pool factory before we can allocate any memory. */
>>      pj_caching_pool_init(&cp, &pj_pool_factory_default_policy, 0);
>>
>>
>>      /* Create global endpoint: */
>>      {
>>          const pj_str_t *hostname;
>>          const char *endpt_name;
>>
>>          /* Endpoint MUST be assigned a globally unique name.
>>           * The name will be used as the hostname in Warning header.
>>           */
>>
>>          /* For this implementation, we'll use hostname for simplicity */
>>          hostname = pj_gethostname();
>>          endpt_name = hostname->ptr;
>>
>>          /* Create the endpoint: */
>>
>>          status = pjsip_endpt_create(&cp.factory, endpt_name,
>>                                      &g_endpt);
>>          pj_assert(status == PJ_SUCCESS);
>>      }
>>
>>
>>      /*
>>       * Add UDP transport, with hard-coded port
>>       * Alternatively, application can use pjsip_udp_transport_attach() to
>>       * start UDP transport, if it already has an UDP socket (e.g. after it
>>       * resolves the address with STUN).
>>       */
>>      {
>>          pj_sockaddr_in addr;
>>
>>         status = !PJ_SUCCESS;
>>
>>         while(status != PJ_SUCCESS){
>>             addr.sin_family = pj_AF_INET();
>>             addr.sin_addr.s_addr = 0;
>>             addr.sin_port = pj_htons((pj_uint16_t)mySipPort);
>>             status = pjsip_udp_transport_start( g_endpt, &addr, NULL, 1,
>>  NULL);
>>             if(status != PJ_SUCCESS)
>>                 Fax::instance->mySipPort++;
>>          }
>>
>>          if (status != PJ_SUCCESS) {
>>             ;//app_perror(THIS_FILE, "Unable to start UDP transport",
>>  status);
>>              return;
>>          }
>>      }
>>
>>
>>  ------------------------------------------------------------------------------
>>  PROBLEMS START HERE, I get an assertion error inside
>>  pjsip_tsx_layer_init_module(g_endpt);
>>  ------------------------------------------------------------------------------
>>      /*
>>       * Init transaction layer.
>>       * This will create/initialize transaction hash tables etc.
>>       */
>>      status = pjsip_tsx_layer_init_module(g_endpt);
>>      pj_assert(status == PJ_SUCCESS);
>>
>>
>>      /*
>>       * Initialize UA layer module.
>>       * This will create/initialize dialog hash tables etc.
>>       */
>>     status = pjsip_ua_init_module( g_endpt, NULL );
>>     pj_assert(status == PJ_SUCCESS);
>>
>>
>>  [...]
>>
>>  ------------------------------------------------------------------------------
>>
>>
>>  Any help will be appreciated ;)
>>
>>  Andr?
>>
>>  _______________________________________________
>>  Visit our blog: http://blog.pjsip.org
>>
>>  pjsip mailing list
>>  pjsip at lists.pjsip.org
>>  http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>
>>     
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>   




[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux