So this is a question based around the FreeSWITCH C API. I have two scenarios involving two endpoints, A & B. Scenario 1 FS calls B using switch_ivr_originate(), it then calls A (say a Linphone client) and creates a new switch_caller_profile_t for it using switch_caller_profile_new() and sets the ->caller_id_number field to e.g 1234 to indicate a call from B and then does a switch_ivr_originate(). A rings and Linphone shows the call coming from 1234@... OK, that's all fine. The calls are bridged together with switch_ivr_uuid_bridge(A, B) Scenario 2 FS calls A (again lets say a Linphone client) using switch_ivr_originate(), A rings and shows the call coming from 0000...@..., that's fine, I didn't set any CID. Now A is parked and is off-hook. FS then calls B, A & B are then bridged together with switch_ivr_uuid_bridge(A, B), now of course Linphone still shows the call as from 0000...@... I'd like it show for example 1234@... like above. Now I've tried setting numerous fields in the switch_caller_profile_t structure for A just before doing the bridge, but to no avail. So does what I'm trying to do make sense? Is it even possible? Cheers, Andrew