@@ -36,31 +36,43 @@ public async Task<bool> Execute(RoleDialogModel message)
3636 var args = JsonSerializer . Deserialize < LlmContextIn > ( message . FunctionArgs , _options . JsonSerializerOptions ) ;
3737 if ( args . PhoneNumber . Length != 12 || ! args . PhoneNumber . StartsWith ( "+1" , StringComparison . OrdinalIgnoreCase ) )
3838 {
39- _logger . LogError ( "Invalid phone number format: {phone}" , args . PhoneNumber ) ;
39+ var error = $ "Invalid phone number format: { args . PhoneNumber } ";
40+ _logger . LogError ( error ) ;
41+ message . Content = error ;
4042 return false ;
4143 }
44+
4245 if ( string . IsNullOrWhiteSpace ( args . InitialMessage ) )
4346 {
4447 _logger . LogError ( "Initial message is empty." ) ;
48+ message . Content = "There is an error when generating phone message." ;
4549 return false ;
4650 }
47- var completion = CompletionProvider . GetAudioCompletion ( _services , "openai" , "tts-1" ) ;
51+
4852 var fileStorage = _services . GetRequiredService < IFileStorageService > ( ) ;
53+ var sessionManager = _services . GetRequiredService < ITwilioSessionManager > ( ) ;
54+ var convService = _services . GetRequiredService < IConversationService > ( ) ;
55+ var conversationId = convService . ConversationId ;
56+
57+ // Generate audio
58+ var completion = CompletionProvider . GetAudioCompletion ( _services , "openai" , "tts-1" ) ;
4959 var data = await completion . GenerateAudioFromTextAsync ( args . InitialMessage ) ;
50- var conversationId = Guid . NewGuid ( ) . ToString ( ) ;
5160 var fileName = $ "intial.mp3";
5261 fileStorage . SaveSpeechFile ( conversationId , fileName , data ) ;
53- // TODO: Add initial message in the new conversation
54- var sessionManager = _services . GetRequiredService < ITwilioSessionManager > ( ) ;
62+
63+ // Call phone number
5564 await sessionManager . SetAssistantReplyAsync ( conversationId , 0 , new AssistantMessage
5665 {
5766 Content = args . InitialMessage ,
5867 SpeechFileName = fileName
5968 } ) ;
69+
6070 var call = await CallResource . CreateAsync (
6171 url : new Uri ( $ "{ _twilioSetting . CallbackHost } /twilio/voice/init-call?conversationId={ conversationId } ") ,
6272 to : new PhoneNumber ( args . PhoneNumber ) ,
6373 from : new PhoneNumber ( _twilioSetting . PhoneNumber ) ) ;
74+
75+ message . Content = $ "The generated phone message: { args . InitialMessage } " ?? message . Content ;
6476 message . StopCompletion = true ;
6577 return true ;
6678 }
0 commit comments