diff --git a/src/sdp.cpp b/src/sdp.cpp
index 7b847bbbeab70e4bf26d0ab98f424d47e951032f..7b1d2634803ecba88f22a560e31ea24f36d310af 100644
--- a/src/sdp.cpp
+++ b/src/sdp.cpp
@@ -32,10 +32,11 @@ static const pj_str_t STR_RTP_AVP = { (char*)"RTP/AVP", 7 };
 static const pj_str_t STR_SDP_NAME = { (char*)"sflphone", 7 };
 static const pj_str_t STR_SENDRECV = { (char*)"sendrecv", 8 };
 
-    Sdp::Sdp( pj_pool_t *pool ) 
+    Sdp::Sdp( pj_pool_t *pool, int port ) 
         : _local_media_cap(), _session_media(0),  _ip_addr( "" ), _local_offer( NULL ), _negociated_offer(NULL), _negociator(NULL), _pool(NULL) 
 {
     _pool = pool;
+    _localAudioPort = 65555; ///port;
 }
 
 Sdp::~Sdp() {
@@ -63,7 +64,7 @@ void Sdp::set_media_descriptor_line( sdpMedia *media,
     pj_strdup(_pool, &med->desc.media,
               ( media->get_media_type() == MIME_TYPE_AUDIO ) ? &STR_AUDIO : &STR_VIDEO );
     med->desc.port_count = 1;
-    med->desc.port = media->get_port();
+    med->desc.port = 65555; //media->get_port();
     pj_strdup (_pool, &med->desc.transport, &STR_RTP_AVP);
 
     // Media format ( RTP payload )
@@ -103,6 +104,7 @@ void Sdp::set_media_descriptor_line( sdpMedia *media,
 int Sdp::create_local_offer (){
     pj_status_t status;
 
+    _debug ("Create local offer\n");
     // Build local media capabilities
     set_local_media_capabilities ();
 
@@ -121,20 +123,22 @@ int Sdp::create_local_offer (){
     //sdp_addAttributes( _pool );
     sdp_add_media_description( );
 
+    _debug ("local port = %i\n", _localAudioPort);
+    toString ();
+
     // Validate the sdp session
     status = pjmedia_sdp_validate( this->_local_offer );
     if (status != PJ_SUCCESS)
         return status;
+    
     return PJ_SUCCESS;
 }
 
-
-
-
 int Sdp::create_initial_offer(  ){
     pj_status_t status;
     pjmedia_sdp_neg_state state;
 
+    _debug ("Create initial offer\n");
     // Build the SDP session descriptor
     create_local_offer( );
 
@@ -154,6 +158,8 @@ int Sdp::receiving_initial_offer( pjmedia_sdp_session* remote ){
     pj_status_t status;
     pjmedia_sdp_neg_state state;
 
+    _debug ("Receiving initial offer\n");
+
     // Create the SDP negociator instance by calling
     // pjmedia_sdp_neg_create_w_remote_offer with the remote offer, and by providing the local offer ( optional )
 
@@ -336,10 +342,12 @@ void Sdp::set_local_media_capabilities () {
     sdpMedia *audio;
     CodecsMap codecs_list;
     CodecsMap::iterator iter;
-    AudioCodec *codec_to_add;
+
+    _debug ("Fetch local media capabilities .......... %i" , getLocalExternAudioPort());
 
     /* Only one audio media used right now */
     audio = new sdpMedia(MIME_TYPE_AUDIO);
+    audio->set_port (_localAudioPort);
     
     /* We retrieve the codecs selected by the user */
     selected_codecs = Manager::instance().getCodecDescriptorMap().getActiveCodecs(); 
@@ -352,4 +360,6 @@ void Sdp::set_local_media_capabilities () {
 
         audio->add_codec (iter->second);
     } 
+    _local_media_cap.push_back (audio);
+    _debug ("%s\n", audio->to_string ().c_str());
 }
diff --git a/src/sdp.h b/src/sdp.h
index 4b846dce2e980aba3095a58a8fe4f7d1df4cfe1d..203cf73ddc88422d81818232dbc254160701d60e 100644
--- a/src/sdp.h
+++ b/src/sdp.h
@@ -40,7 +40,7 @@ class Sdp {
          *
          * @param ip_addr
          */
-        Sdp(pj_pool_t *pool);
+        Sdp(pj_pool_t *pool, int port);
 
         /* Class destructor */
         ~Sdp();
@@ -144,9 +144,9 @@ class Sdp {
 
 
   ///////////////////////////////////////////////////////////////////////////33
-        void  setLocalExternAudioPort(int port){ _localPort = port; }
+        void  setLocalExternAudioPort(int port){ _localAudioPort = port; }
 
-        int  getLocalExternAudioPort (void){ return _localPort; }
+        int  getLocalExternAudioPort (void){ return _localAudioPort; }
 
         void toString (void);
 
@@ -288,12 +288,12 @@ class Sdp {
          */
         void sdp_add_media_description();
 
+        int _localAudioPort;
 
 //////////////////////////////////////////////////////////////////3
         /** Codec pointer */
         AudioCodecType _audioCodec;
 
-        int _localPort;
 
         /** Remote's IP address */
         std::string  _remoteIPAddress;
diff --git a/src/sipcall.cpp b/src/sipcall.cpp
index 43aabe062073070ac69a3b22bdaf8dc945cac5ca..6314a7110da9bf3bc86ea682eae57920603d9c2e 100644
--- a/src/sipcall.cpp
+++ b/src/sipcall.cpp
@@ -32,7 +32,7 @@ SIPCall::SIPCall(const CallID& id, Call::CallType type, pj_pool_t *pool) : Call(
             , _invSession(NULL)
             , _local_sdp(0)
 {
-    _local_sdp = new Sdp (pool);
+    _local_sdp = new Sdp (pool, getLocalExternAudioPort() );
   _debug("SIPCALL::Constructor for this clss is called \n");
 }
 
diff --git a/src/sipvoiplink.cpp b/src/sipvoiplink.cpp
index 90f607801039886d34b68b99f7470b138f03b6a5..6aa49bb68e973935c927d804887e7729e1e147dc 100644
--- a/src/sipvoiplink.cpp
+++ b/src/sipvoiplink.cpp
@@ -913,6 +913,7 @@ SIPVoIPLink::SIPStartCall(SIPCall* call, const std::string& subject UNUSED)
     pj_str_t from, to, contact;
     AccountID id;
     SIPAccount *account;
+    pjsip_inv_session *inv;
 
     if (!call) 
         return false;
@@ -943,7 +944,6 @@ SIPVoIPLink::SIPStartCall(SIPCall* call, const std::string& subject UNUSED)
     setCallAudioLocal(call, getLocalIPAddress(), useStun(), getStunServer());
 
     // Create the invite session for this call
-    pjsip_inv_session *inv;
     status = pjsip_inv_create_uac(dialog, call->getLocalSDP()->get_local_sdp_session(), 0, &inv);
     PJ_ASSERT_RETURN(status == PJ_SUCCESS, false);