diff -aur twinkle-1.0-orig/src/phone.cpp twinkle-1.0-nat/src/phone.cpp --- twinkle-1.0-orig/src/phone.cpp 2007-01-15 21:34:38.000000000 +0100 +++ twinkle-1.0-nat/src/phone.cpp 2007-06-01 18:30:18.000000000 +0200 @@ -2735,6 +2735,16 @@ return result; } +string t_phone::get_call_id_ip_sip(t_user *user) { + string result; + + lock(); + result = LOCAL_IP; + unlock(); + + return result; +} + unsigned short t_phone::get_public_port_sip(t_user *user) { unsigned short result; diff -aur twinkle-1.0-orig/src/phone.h twinkle-1.0-nat/src/phone.h --- twinkle-1.0-orig/src/phone.h 2007-01-15 21:07:20.000000000 +0100 +++ twinkle-1.0-nat/src/phone.h 2007-06-01 18:30:21.000000000 +0200 @@ -415,6 +415,7 @@ // Get IP address and port for SIP string get_ip_sip(t_user *user); + string get_call_id_ip_sip(t_user *user); unsigned short get_public_port_sip(t_user *user); // Indicates if STUN is used diff -aur twinkle-1.0-orig/src/protocol.h twinkle-1.0-nat/src/protocol.h --- twinkle-1.0-orig/src/protocol.h 2007-01-07 08:47:33.000000000 +0100 +++ twinkle-1.0-nat/src/protocol.h 2007-06-01 18:31:34.000000000 +0200 @@ -214,7 +214,7 @@ #define CALL_ID_LEN 15 // Create a new call-id -#define NEW_CALL_ID(u) (random_token(CALL_ID_LEN) + '@' + USER_HOST(u)) +#define NEW_CALL_ID(u) (random_token(CALL_ID_LEN) + '@' + CALL_ID_USER_HOST(u)) // Create a new sequence number fo CSeq header #define NEW_SEQNR rand() % 1000 + 1 diff -aur twinkle-1.0-orig/src/user.h twinkle-1.0-nat/src/user.h --- twinkle-1.0-orig/src/user.h 2007-01-07 08:47:33.000000000 +0100 +++ twinkle-1.0-nat/src/user.h 2007-06-01 18:30:33.000000000 +0200 @@ -43,6 +43,7 @@ #define PUBLIC_SIP_UDP_PORT(u) phone->get_public_port_sip(u) #define USER_HOST(u) phone->get_ip_sip(u) +#define CALL_ID_USER_HOST(u) phone->get_call_id_ip_sip(u) #define LOCAL_IP user_host #define SPECIAL_PHONE_SYMBOLS "-()/."