Skip to content
This repository was archived by the owner on Feb 26, 2026. It is now read-only.

Commit 64d6f13

Browse files
authored
Merge pull request #12 from sipsorcery-org/non-preview-model
Add new gpt-realtime (non preview) model.
2 parents 3edc935 + 3ae475c commit 64d6f13

File tree

16 files changed

+191
-35
lines changed

16 files changed

+191
-35
lines changed

examples/AliceAndBob/Program.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,9 @@ static async Task Main(string[] args)
8282
var aliceConnectedSemaphore = new SemaphoreSlim(0, 1);
8383
var bobConnectedSemaphore = new SemaphoreSlim(0, 1);
8484

85-
var logger = loggerFactory.CreateLogger<Program>();
86-
var aliceWebrtcEndPoint = new WebRTCEndPoint(openAiKey, logger);
85+
var aliceWebrtcEndPoint = new WebRTCEndPoint(openAiKey, loggerFactory);
8786
aliceWebrtcEndPoint.OnPeerConnectionConnected += () => aliceConnectedSemaphore.Release();
88-
var bobWebrtcEndPoint = new WebRTCEndPoint(openAiKey, logger);
87+
var bobWebrtcEndPoint = new WebRTCEndPoint(openAiKey, loggerFactory);
8988
bobWebrtcEndPoint.OnPeerConnectionConnected += () => bobConnectedSemaphore.Release();
9089

9190
// We'll listen in on the audio.

examples/AspNetGetStarted/AspNetGetStarted.csproj

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,10 @@
1212
<ItemGroup>
1313
<PackageReference Include="LanguageExt.Core" Version="4.4.9" />
1414
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
15-
<PackageReference Include="SIPSorcery.OpenAI.WebRTC" Version="8.0.4" />
1615
</ItemGroup>
1716

18-
<!--<ItemGroup>
17+
<ItemGroup>
1918
<ProjectReference Include="..\..\src\SIPSorcery.OpenAI.WebRTC.csproj" />
20-
</ItemGroup>-->
19+
</ItemGroup>
2120

2221
</Project>

examples/AspNetLocalFunction/AspNetLocalFunction.csproj

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,10 @@
1212
<ItemGroup>
1313
<PackageReference Include="LanguageExt.Core" Version="4.4.9" />
1414
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
15-
<PackageReference Include="SIPSorcery.OpenAI.WebRTC" Version="8.0.4" />
1615
</ItemGroup>
1716

18-
<!--<ItemGroup>
17+
<ItemGroup>
1918
<ProjectReference Include="..\..\src\SIPSorcery.OpenAI.WebRTC.csproj" />
20-
</ItemGroup>-->
19+
</ItemGroup>
2120

2221
</Project>

examples/GetPaid/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ static async Task Main()
6363
return;
6464
}
6565

66-
var webrtcEndPoint = new WebRTCEndPoint(openAiKey, logger);
66+
var webrtcEndPoint = new WebRTCEndPoint(openAiKey, loggerFactory);
6767

6868
// We'll send/receive audio directly from our Windows audio devices.
6969
var windowsAudioEP = InitialiseWindowsAudioEndPoint();

examples/GetStarted/Program.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ class Program
4545
static async Task Main()
4646
{
4747
Log.Logger = new LoggerConfiguration()
48-
.MinimumLevel.Debug()
49-
//.MinimumLevel.Verbose()
48+
//.MinimumLevel.Debug()
49+
.MinimumLevel.Verbose()
5050
.Enrich.FromLogContext()
5151
.WriteTo.Console()
5252
.CreateLogger();
@@ -66,7 +66,7 @@ static async Task Main()
6666

6767
var logger = loggerFactory.CreateLogger<Program>();
6868

69-
var webrtcEndPoint = new WebRTCEndPoint(openAiKey, logger);
69+
var webrtcEndPoint = new WebRTCEndPoint(openAiKey, loggerFactory);
7070

7171
// Send/receive audio directly from Windows audio devices.
7272
var windowsAudioEp = InitialiseWindowsAudioEndPoint();
@@ -84,7 +84,7 @@ static async Task Main()
8484
{
8585
Log.Logger.Information("WebRTC peer connection established.");
8686

87-
var voice = RealtimeVoicesEnum.shimmer;
87+
var voice = RealtimeVoicesEnum.marin;
8888

8989
// Optionally send a session update message to adjust the session parameters.
9090
var sessionUpdateResult = webrtcEndPoint.DataChannelMessenger.SendSessionUpdate(

examples/GetStartedSIP/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ private static RTPSession CreateRtpSession(SIPUserAgent ua)
206206
private static async Task CreateOpenAIWebRTCSession(ILoggerFactory loggerFactory, string openAiKey, string sipCallID, RTPSession rtpSession)
207207
{
208208
var logger = loggerFactory.CreateLogger<WebRTCEndPoint>();
209-
var webrtcEndPoint = new WebRTCEndPoint(openAiKey, logger);
209+
var webrtcEndPoint = new WebRTCEndPoint(openAiKey, loggerFactory);
210210

211211
if (_calls.TryGetValue(sipCallID, out var existing))
212212
{

examples/LocalFunctions/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ static async Task Main()
6464
return;
6565
}
6666

67-
var webrtcEndPoint = new WebRTCEndPoint(openAiKey, logger);
67+
var webrtcEndPoint = new WebRTCEndPoint(openAiKey, loggerFactory);
6868

6969
// We'll send/receive audio directly from our Windows audio devices.
7070
var windowsAudioEP = InitialiseWindowsAudioEndPoint();

src/Extensions/WebRTCExtensions.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,17 @@ public static IServiceCollection AddOpenAIRealtimeWebRTC(this IServiceCollection
4444
throw new ArgumentException("OpenAI API key must be provided", nameof(openAiKey));
4545
}
4646

47+
services.AddTransient<HttpLoggingHandler>();
48+
4749
// Register the HTTP client for the REST client
4850
services
4951
.AddHttpClient(WebRTCRestClient.OPENAI_HTTP_CLIENT_NAME, client =>
5052
{
5153
client.Timeout = TimeSpan.FromSeconds(OPENAI_HTTP_CLIENT_TIMEOUT_SECONDS);
5254
client.DefaultRequestHeaders.Authorization =
5355
new AuthenticationHeaderValue("Bearer", openAiKey);
54-
});
56+
})
57+
.AddHttpMessageHandler<HttpLoggingHandler>();
5558

5659
// Register the REST and WebRTC clients
5760
services.AddTransient<IWebRTCRestClient, WebRTCRestClient>();

src/Models/Realtime/Enums/RealtimeConversationContentTypeEnum.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,7 @@ public enum RealtimeConversationContentTypeEnum
1010

1111
text,
1212

13-
audio
13+
audio,
14+
15+
output_audio
1416
}

src/Models/Realtime/Enums/RealtimeModelsEnum.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,9 @@ public enum RealtimeModelsEnum
2020
Gpt4oMiniRealtimePreview_2024_12_17,
2121

2222
[EnumMember(Value = "gpt-4o-realtime-preview-2025-06-03")]
23-
Gpt4oRealtimePreview_2025_06_03
23+
Gpt4oRealtimePreview_2025_06_03,
24+
25+
// Added 23 Feb 2026 and replaces the previous preview models.
26+
[EnumMember(Value = "gpt-realtime")]
27+
GptRealtime
2428
}

0 commit comments

Comments
 (0)