diff --git a/codecs-sync-design.md b/codecs-sync-design.md
index c88864efb2400437c8bb452a2483194d4ebc66a9..8603d208de8ef84af8796e29b78aaa687bdff4ac 100644
--- a/codecs-sync-design.md
+++ b/codecs-sync-design.md
@@ -6,14 +6,19 @@ sequenceDiagram
     participant A as dectmngr
     participant B as voicemngr
     participant C as chan-voicemngr
+    participant D as shared memory
     alt is fxs
         Note over B: update out_request_cap with fxs cap <br/> ---------------------------------------------------
+        B->>D: Write out_request_cap 
     else is dect
         Note over A: update out_request_cap with enpt cap <br/> -----------------------------------------------------
+        A->>D: Write out_request_cap 
         A->>B: new call
     end
     B->>C: init call
-    Note over C: chan_voicemngr_start_calling<br/>/chan_voicemngr_new: <br/>  sem_wait() <br/> Read out_request_cap from shared memory <br/> sem_post() <br/> update cap and continue with outgoing process <br/> ------------------------------------------------------------------
+    Note over C: chan_voicemngr_start_calling<br/>/chan_voicemngr_new: <br/>  Read out_request_cap from shared memory <br/> --------------------------------------------------------------
+    D->>C: Read out_request_cap 
+    Note over C: chan_voicemngr_start_calling<br/>/chan_voicemngr_new: <br/>  update cap and continue with outgoing process <br/> ------------------------------------------------------------------
 ```
 
 #### incoming calls
@@ -23,20 +28,34 @@ sequenceDiagram
     participant B as chan-voicemngr
     participant C as voicemngr
     participant D as dectmngr
+    participant E as shared memory
     Note left of A : Incoming call
     Note over A: incoming codec offer negotiation with pjsip cap <br/> and keep the list <br/>which used for calling chan_voicemngr  <br/> ------------------------------------------------------------------
     A->>B: chan_voicemngr_new(..., codec_list)
-    Note over B: chan_voicemngr_new: <br/> sem_wait() <br/> Read extension_cap from shared memory <br/> update in_request_cap to shared memory <br/> sem_post() <br/> update cap and continue with incoming process <br/> hangup chan if no shared cap <br/> ------------------------------------------------------------------
-    B->>A: cap update and continue with incoming process
-    A->>C: indicate RINGING
-    alt is fxs answered
-        Note over C: update answered_cap <br/> combined with <br/> in_request_cap and fxs cap <br/> ----------------------------------------
-    else is dect answered
-        Note over D: update answered_cap <br/> combined with <br/> in_request_cap and enpt cap <br/> ------------------------------------------
+    Note over B: chan_voicemngr_new: <br/> Read extension_cap from shared memory <br/> -----------------------------------------------------------
+    E->>B: Read extension_cap
+    alt no avaliable cap in extension_cap
+        Note over B: hangup chan if no shared cap <br/> -------------------------------------------
+    else incoming cap avaliable in extension_cap
+        Note over B: update in_request_cap to shared memory <br/> update cap and continue with incoming process <br/> ------------------------------------------------------------------
+        B->>E: Write in_request_cap
+        B->>A: cap update and continue with incoming process
+        A->>C: indicate RINGING
+        alt fxs answered
+            Note over C: update answered_cap <br/> combined with <br/> in_request_cap and fxs cap <br/> ----------------------------------------
+            E->>C: Read in_request_cap
+            C->>E: Write answered_cap
+        else dect answered
+            Note over D: update answered_cap <br/> combined with <br/> in_request_cap and enpt cap <br/> ------------------------------------------
+            E->>D: Read in_request_cap
+            D->>E: Write answered_cap
+            D->>C: Answered/OFFHOOK
+        end
+        C->>A: Answered
+        Note over A: pjsip/res_pjsip_sdp_rtp.c: <br/> update cap with answered_cap. <br/> --------------------------------------------
+        E->>A: Read answered_cap
+        Note left of A: 200OK
     end
-    C->>A: Answered
-    Note over A: pjsip/res_pjsip_sdp_rtp.c: <br/> update cap with answered_cap. <br/> --------------------------------------------
-    Note left of A: 200OK
 ```
 
 ### Tasks need to be done