# Make a voice call This sample application demonstrates how to make a voice call. 1. Implement ResponseCallback interface to receive subsystem initialization status std::promise cbProm = std::promise(); void initResponseCb(telux::common::ServiceStatus status) { if(subSystemsStatus == SERVICE_AVAILABLE) { std::cout << Call Manager subsystem is ready << std::endl; } else if(subSystemsStatus == SERVICE_FAILED) { std::cout << Call Manager subsystem initialization failed << std::endl; } cbProm.set_value(status); } Copy to clipboard 2. Get the PhoneFactory and Call Manager instance auto &phoneFactory = PhoneFactory::getInstance(); auto callManager = phoneFactory.getCallManager(initResponseCb); if(callManager == NULL) { std::cout << " Failed to get Call Manager instance" << std::endl; return -1; } Copy to clipboard 3. Wait for Call Manager subsystem to be ready telux::common::ServiceStatus status = cbProm.get_future().get(); if(status != SERVICE_AVAILABLE) { std::cout << Unable to initialize Call Manager subsystem << std::endl; return -1; } Copy to clipboard 4. Optionally, implement IMakeCallCallback interface to receive response for the dial request class DialCallback : public IMakeCallCallback { public: void DialCallback::makeCallResponse(ErrorCode error, std::shared_ptr call) { // will be invoked with response of makeCall operation } }; std::shared_ptr dialCb = std::make_shared (); Copy to clipboard 5. Send a dial request if(callManager) { std::string phoneNumber("+18989531755"); int phoneId = 1; auto makeCallStatus = callManager->makeCall(phoneId, phoneNumber, dialCb); std::cout << "Dial Call Status:" << (int)makeCallStatus << std::endl; } Copy to clipboard Last Published: Jun 24, 2026 [Previous Topic Telephony](https://docs.qualcomm.com/bundle/publicresource/80-PF458-1/topics/phone.md) [Next Topic Make eCall](https://docs.qualcomm.com/bundle/publicresource/80-PF458-1/topics/make_eCall.md)