diff options
Diffstat (limited to 'Samples/C++/REGISTER/test/test.cpp')
-rw-r--r-- | Samples/C++/REGISTER/test/test.cpp | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/Samples/C++/REGISTER/test/test.cpp b/Samples/C++/REGISTER/test/test.cpp new file mode 100644 index 0000000..2668366 --- /dev/null +++ b/Samples/C++/REGISTER/test/test.cpp @@ -0,0 +1,86 @@ +// test.cpp : Defines the entry point for the console application. +// + +#include "stdafx.h" +#include <assert.h> +#include <api_engine.h> +#include <api_stack.h> + +#define STACK_ID 1234 + +#ifdef WIN32 +# include <windows.h> +#endif + +/* Event listening using a static method */ +void OnRegistrationStateChanged(int stack_id, dgo::sip_state_registration_t state, int sipcode, const char* sipdesc) +{ + /* check if it's our stack */ + if(stack_id != STACK_ID) return; + + switch(state) + { + case dgo::srs_none: printf("Test_OnRegistrationStateChanged: %s(%s)\n", "srs_none", sipdesc); break; + case dgo::srs_trying: printf("Test_OnRegistrationStateChanged: %s(%s)\n", "srs_trying", sipdesc); break; + case dgo::srs_authentifying: printf("Test_OnRegistrationStateChanged: %s(%s)\n", "srs_authentifying", sipdesc); break; + case dgo::srs_unregistered: printf("Test_OnRegistrationStateChanged: %s(%s)\n", "srs_unregistered", sipdesc); break; + case dgo::srs_registered: printf("Test_OnRegistrationStateChanged: %s(%s)\n", "srs_registered", sipdesc); break; + } +} + +int _tmain(int argc, _TCHAR* argv[]) +{ + /* MUST call this function to initialize the engine befor using the first stack */ + assert( ERR_SUCCEED(dgo::engine_initialize()) ); + + /* create the stack */ + dgo::stack* stack = new dgo::stack(STACK_ID); + + /* Events registration */ + stack->registrationStateChanged.connect(&OnRegistrationStateChanged); + + /* check that the stack has been successfuly initialized */ + assert(stack->get_initialized()); + + /* MUST: Initialize mandatory parameters */ + stack->set_public_id("sip:bob@ims.inexbee.com"); + stack->set_private_id("bob@ims.inexbee.com"); + + stack->set_pcscf("192.168.0.14"); + stack->set_pcscf_port(4060); + stack->set_realm("ims.inexbee.com"); + + /* Not mandatory but must be set before starting */ + stack->set_sigcomp(true); + + /* run stack */ + assert( ERR_SUCCEED(stack->run()) ); + + /* set other optional parameters */ + stack->set_displayname("Doubango"); + stack->set_privacy("none"); + stack->set_password("bob"); + stack->set_early_ims(false); + stack->set_expires(10); + + /* register */ + stack->sip_register(); + + /* wait */ +#ifdef WIN32 + Sleep(500000); +#else + getchar(); +#endif + + /* Now it's time to unregister */ + stack->sip_unregister(); + + /* wait */ + getchar(); + + /* destroy the engine and unregister all identities*/ + assert( ERR_SUCCEED(dgo::engine_deinitialize()) ); + + return 0; +}
\ No newline at end of file |