Markdown Version

Session Date/Time: 09 Sep 2026 14:00

[00:02:19] Thomas McCarthy-Howe: Hello?

[00:02:23] Jonathan Rosenberg: Hello?

[00:02:24] Thomas McCarthy-Howe: Hey, Jonathan. How are you?

[00:02:26] Jonathan Rosenberg: Alright. Just fighting with WebRTC camera permissions. Why it

[00:02:32] Thomas McCarthy-Howe: doesn't work? You had you had a hand in that.

[00:02:37] Jonathan Rosenberg: No. I suppose.

[00:02:40] Thomas McCarthy-Howe: Just saying the unintended consequence of your life.

[00:02:44] Daniel Petrie: It's just not working. Yeah. I I'm fighting with electricity here.

[00:02:53] Jonathan Rosenberg: Really?

[00:02:55] Daniel Petrie: I I had a power outage until about a minute ago.

[00:02:58] Jonathan Rosenberg: Oh my gosh.

[00:03:01] Daniel Petrie: Why is this not it's

[00:03:02] Jonathan Rosenberg: got the right device.

[00:03:06] Scott Godin: Morning, everyone. Hey, Scott.

[00:03:13] Daniel Petrie: So, Jonathan, what are you doing with all your time now that you're retired?

[00:03:17] Jonathan Rosenberg: Well, I'm gonna work on vCon. Yes.

[00:03:21] Thomas McCarthy-Howe: That's fantastic.

[00:03:22] Jonathan Rosenberg: You probably you probably don't want that. But no. So, like, my my plan is to I'm gonna take about three months to live a, what I call, like, semi retirement model, which is not quite the right word, but, like, doing ITF work, consulting gigs, write a lot of software with AI, personal projects where, like, I make you know, I'm making some money, but I'm not it's not like a full time gig. And then in parallel, look for a job, you know, full time job again, and then decide after three months if I'm gonna take a full time job or stay in this, like, semi retired model. That's the that's the plan.

[00:04:04] Daniel Petrie: That's it's a a a test run.

[00:04:06] Jonathan Rosenberg: A test run. Test drive of semi retirement is what I call it. My wife does not think I will even make it two weeks, but but it you know, I I think it's only possible now because you can write a you know, I can do a lot of work on it almost on my own, like, you know, with with

[00:04:22] Thomas McCarthy-Howe: Oh, you yeah. It's a different world like that.

[00:04:25] Jonathan Rosenberg: Yeah. I mean, so I have, like, three apps that I got I wanna write on the break. One of them has already, you know, been in progress for a bit. So, you know, hobby things, not like Uh-huh. Mostly, you know, one of them the big one being a wine a wine application. That's my my hobby these days. So wine tracking. Yeah.

[00:04:45] Thomas McCarthy-Howe: You know, if I had to do one project as a retirement ish project Yeah. I'd like to build a robot that will paint my house.

[00:04:56] Jonathan Rosenberg: Yeah. That would be something.

[00:05:02] Thomas McCarthy-Howe: Well, it's interesting. Right? I mean, think of all the the the the physics and the just stuff. There's actual stuff there.

[00:05:09] Daniel Petrie: Whose house do you test that on?

[00:05:10] Thomas McCarthy-Howe: What? My house because it needs a paint.

[00:05:14] Daniel Petrie: Yeah.

[00:05:20] Jonathan Rosenberg: I would I would have to test something else, man.

[00:05:26] Thomas McCarthy-Howe: Let me see. Jonathan, hi, Scott. Thanks for being here.

[00:05:31] Jonathan Rosenberg: I see we have doctor Lennox as well.

[00:05:34] Thomas McCarthy-Howe: Doctor Lennox. Yep. Hello.

[00:05:36] Daniel Petrie: Hello. Hi, Jonathan.

[00:05:38] Jonathan Rosenberg: It's just it keeps the video keeps reverting

[00:05:42] Scott Godin: Hey, guys.

[00:05:42] Jonathan Rosenberg: To the wrong device. I tell you, man, like, twenty years in, and we still haven't solved fucking device selection for Yeah. WebRTC. It's it's really embarrassing.

[00:05:51] Thomas McCarthy-Howe: It's why h three twenty three was so hard to write.

[00:05:55] Daniel Petrie: Yeah. It's it's it's funny that you should say that because, actually, I I still work on that on yeah. You know, remember the Pingtel stuff, CivX? Yeah. You know, we we have we have customers that are using it, and I'm still fucking with device control shit.

[00:06:12] Jonathan Rosenberg: Yeah. It's unbelievable.

[00:06:15] Daniel Petrie: It's just fucking pain in the ass.

[00:06:19] Jonathan Rosenberg: Yeah. It is.

[00:06:24] Thomas McCarthy-Howe: I'm not trying to show off, Jonathan.

[00:06:26] Jonathan Rosenberg: No. You got you got yours to work. I I have my I have two cameras in my other one. Actually, what if it just let's see how this works.

[00:06:34] Daniel Petrie: It's still

[00:06:35] Thomas McCarthy-Howe: Picture toe in the house.

[00:06:36] Jonathan Rosenberg: See, this one works, but it's like this I have a webcam. It's a it's actually a a, like, a a mirrorless camera. It's really nice that I'm using as a webcam. It was like a COVID thing I did, and it works great. Except for some reason, it's you can see how it's, like, stretched me vertically. Or at least do you see it stretched?

[00:06:58] Thomas McCarthy-Howe: No. No. I see I see it stretched. I'm just not sure if it's an improvement.

[00:07:05] Jonathan Rosenberg: That's a great point. It's like the minus, like, minus 10 pounds digitally.

[00:07:09] Scott Godin: It's weight loss mode. Yeah.

[00:07:11] Jonathan Rosenberg: Yeah. Now that's the killer app right there. The you you have, like, a filter that's, like, a minus twenty, thirty pounds filter. We laugh, by the way, but, like,

[00:07:21] Daniel Petrie: Oh, yeah. Now Yep.

[00:07:22] Jonathan Rosenberg: I mean, seriously, it's getting a little scary.

[00:07:28] Thomas McCarthy-Howe: Oh, yeah, Chris. We have our we have our chair. Now it's official.

[00:07:40] Jonathan Rosenberg: Oh, there it is. Yeah. And,

[00:07:43] Thomas McCarthy-Howe: Scott, where are you where are you in from? Where are you calling from? California? Can't hear you.

[00:07:56] Jonathan Rosenberg: I don't think he's got audio working.

[00:07:58] Daniel Petrie: Mhmm. Either. No. He was I heard him before when he came first joined. He's he's up I don't know if he's at home in Ottawa or up north of that. It is Yeah. It is Devon.

[00:08:11] Thomas McCarthy-Howe: Well, that's so that's so Canadian. I don't know anyone who lives in Ottawa who doesn't, like, have a, a cottage up in up on the lake somewhere.

[00:08:24] Jonathan Rosenberg: Oh, is that right?

[00:08:25] Thomas McCarthy-Howe: Yeah. To to to very to very, you know, Ontario, Quebec thing to do.

[00:08:30] Scott Godin: I'm at my cottage in Ontario. So you're right, Thomas.

[00:08:38] Thomas McCarthy-Howe: It's a great part of the world.

[00:08:44] Jonathan Rosenberg: I dare I say it. I this is killing me. I'm gonna leave and rejoin this. I I can't stand this. Let me let me do that, and let's see if this works.

[00:09:09] Thomas McCarthy-Howe: And why does no. No.

[00:09:31] Daniel Petrie: What well, we got the other camera, but Yeah.

[00:09:34] Scott Godin: No voice.

[00:09:35] Thomas McCarthy-Howe: Yeah. More of a full head now.

[00:09:37] Daniel Petrie: There we go. It's better.

[00:09:39] Jonathan Rosenberg: You know what it is? It looks like it's a MeetEcho thing where if you I selected the prior device at start, and if you go to WebRTC permissions and change the device, it MeetEcho wasn't picking it up. So it was stuck on the

[00:09:52] Thomas McCarthy-Howe: Is that how you pronounce it?

[00:09:54] Jonathan Rosenberg: I I MeetEcho? That seems worse. Right? MeetEcho? Yeah. Meeting meeting with Echo. I thought it was I thought it was MeetEcho. Don't get me started. I'm on a piece of trash this software is, by the way. I don't know why we're not using, a yeah. You know, proper, like, Zoom, Webex, take your pick. Anything's better than this. Like, this this problem I just had. Like, this is, like It's it's not a professional problem.

[00:10:22] Thomas McCarthy-Howe: Did did did you catch that tools discussion where they're talking about, do we have to have JavaScript enabled in our browsers? Really? That just happened. Like, when it's, like, six months ago. Like, guys, come on. The horse is out of the bait. You know, JavaScript is a thing. I'm sure it's a thing.

[00:10:39] Jonathan Rosenberg: Yeah. Talk about another twenty year technology. Oh my god. ITF can be so backwards in some ways. I find this to be one of the great ironies. You we still produce our specifications in ASCII text.

[00:10:53] Thomas McCarthy-Howe: Uh-huh. You

[00:10:53] Jonathan Rosenberg: know? And we're still struggling to do diagramming and stuff because we have to, like, get these stupid things.

[00:10:59] Thomas McCarthy-Howe: Oh

[00:11:00] Jonathan Rosenberg: my god. And, Bob, I don't know if you guys tried this, but last I tried it, it was a couple years ago. L LMs are terrible at generating Ascii Art. I had some hope that it would be able to do it, and I could, like, not need to use these trash tools. You can make a real image and have AI convert it to Ascii Art. Wow. Wow. Did it fail miserably. Like Yeah. Hallucinations like I've never seen.

[00:11:25] Thomas McCarthy-Howe: Yet I have some really great photos of my dog competing in the Olympics.

[00:11:30] Jonathan Rosenberg: What?

[00:11:31] Thomas McCarthy-Howe: I have some really great photos of my dog competing in the Olympics. It does a really awful job at ASCII art, but does really good at

[00:11:41] Jonathan Rosenberg: Oh, that kind of thing.

[00:11:44] Daniel Petrie: Yeah. Hey,

[00:11:46] Chris Wendt: guys. Sorry. I had technical difficulties.

[00:11:48] Jonathan Rosenberg: Yeah. You're just doing the club. Not a deal. So we get Rowan, you think?

[00:11:58] Daniel Petrie: I pinged him. He said he's his boss is in today. He didn't know if he can make it. He he was swamped. I asked him to at least make a comment on the list. I haven't checked to see if he did that.

[00:12:13] Jonathan Rosenberg: Alright.

[00:12:18] Daniel Petrie: So it sounds like it looks like he's not coming, which is unfortunate because I love his opinion from the Mimi perspective. But Yeah.

[00:12:30] Thomas McCarthy-Howe: Mhmm. I wouldn't mind hearing him

[00:12:32] Daniel Petrie: because he needs stats too

[00:12:33] Thomas McCarthy-Howe: for that matter.

[00:12:37] Daniel Petrie: Let me do a quick check here and see if I if he posted anything.

[00:12:44] Jonathan Rosenberg: Oh, Dan. You'll appreciate this. Sorry. Do you know what this is?

[00:12:50] Daniel Petrie: Sorry. One second. I just flipped up.

[00:12:53] Thomas McCarthy-Howe: Oh, wow. The third

[00:12:54] Daniel Petrie: Third fake. Alright. Eric.

[00:12:56] Jonathan Rosenberg: You know what's amazing? Remember how do you remember that we got sued by Pillsbury?

[00:13:01] Daniel Petrie: Yeah. Yeah. Yeah. Yeah. No. It was it's a bake off, not yeah. It's sued by Pillsbury.

[00:13:05] Jonathan Rosenberg: I tell people this is illegal this is illegal contraband.

[00:13:11] Daniel Petrie: Like, if Pillsbury sees this Right.

[00:13:14] Jonathan Rosenberg: They're gonna come and bang down my door.

[00:13:18] Thomas McCarthy-Howe: Great moment in technology.

[00:13:20] Jonathan Rosenberg: One of my favorite keepsakes.

[00:13:23] Chris Wendt: That's awesome. Alright. Well, why don't we get started?

[00:13:29] Thomas McCarthy-Howe: Oh, by the way, Pavan Pavan's here. Pavan Pavan's one of my staff. We're working on extension together. So

[00:13:35] Chris Wendt: Okay. Welcome.

[00:13:37] Daniel Petrie: Hey,

[00:13:39] Chris Wendt: I didn't create official chair slides. I I forget if that but I I assume note well and all the things I think everyone's experienced here, so let's follow that. I think the biggest thing on the agenda was to go through Dan's slides. Was there any other agenda items that we wanted to talk about today?

[00:14:04] Jonathan Rosenberg: Were we gonna talk about, like, a recharter or work on incorporating the draft-ietf-vcon-privacy-primer in this meeting? Or

[00:14:12] Chris Wendt: Yeah. We did want to talk about that. So, yeah, let's put that on the agenda as well. Yep.

[00:14:17] Daniel Petrie: Sure.

[00:14:22] Chris Wendt: Yeah. And and definitely would like input on that. If we wanna start a draft of a proposed charter, we can do that as well. I can also talk to Charles.

[00:14:36] Jonathan Rosenberg: Yeah.

[00:14:39] Chris Wendt: But should we start with, Dan, your slides?

[00:14:43] Daniel Petrie: Sure. Oops.

[00:14:53] Chris Wendt: Let me bring them up.

[00:14:59] Daniel Petrie: So I think y'all know me. I'm Daniel Petrie. So I I I did an update. You know, I at the last meeting in in Vienna, I went through showed a bunch of, issues that were resolved. In o three, I showed a bunch of issues that are still needed to be addressed, in terms of there was, kind of a list of edits. Scott and and Hank had both identified a couple of issues that needed cleaning up in the doc. And then we also I I think there was kinda consensus to add CDDL. Right? Yep. So that's kinda like where we left things. And then the one big kinda contentious issue was the the grouping of, you know, of sets of recordings when there are multiple separate recording recordings for a single call. Right? So this is just kind of a recap of where we were in Vienna. Going from there, next slide. So I have stuff here that I I I, you know, I spun the document a few days ago. There's an o four version out. I'm gonna go through the list of stuff that got resolved. We've got one general open issue and a few little to dos that I'm gonna intend to go through here today. Next slide. So big list of lot of little things. I won't go through too many of these in detail. I'll call out a few of them because they were bigger. The second item there, reorganize 43431. Scott had made the comment that it was a little hard to understand the different types of dialogues, and that section needed kinda reorganizing. I did that. I sorted things out by by dialogue object type. I added a table so it's clear which parameters belong to which type. I think that was a big improvement on the clarity and kinda understanding, and and it's kind of a quick call out of what what pieces belong in which of the the dialogue types. So that was thank you, Scott, for that comment. I think that was I think that's the biggest, you know, textual improvement to the document in in in this round of edits. Couple other clarifying issues, some typos. And then Hank, if the if he had identified, he would when he was he he made a pass at constructing a CDDL using AI from the document, and there was some ambiguities that came out of that. And so there was, like, the party syntax was

[00:18:15] Thomas McCarthy-Howe: was

[00:18:15] Daniel Petrie: found the the party syntax was shown as mandatory. It's not really it's it's optional. There was unintentional oversight on my my part. Some issues with some of the other items that were kinda missing or inconsistent with the text and how things were shown. Sorted sorted those out. What was missing, I think I had identified this as a as a issue on on the and had written it up on GitHub is that there wasn't text for differentiating the how you differentiate the different forms of but there was for the different JSON forms, but there wasn't text about differentiating the JSON form versus g ZIP form. And so I added some text around that. And then for all this stuff, I updated the the JSON schema, and I added this first pass of CDDL spec for the for the draft. And so those you know, the JSON was updated, and CDL was added back in as discussed at at in Vienna. And then I removed a couple things that had had this removed arrays for the transfer object for the different call references that we might have to reverse if we decide to go some different path other than the recording set or the or a dialogue set. But the transfer target doesn't need to have an array. So that's that that will stay with without a array reference array. It only needs a a single index to for for referencing. Lots of typos, lots of consistency things. You know, I I use the exercise of, you know, creating the the JSON schema and the CBL to kinda review the document where there were ambiguities of in jittering the the schema. And so I found a few other little things needed tweaking and and stuff like that. Some normative text that was either missing or in the wrong place and and stuff like that. So that's that's o four. It also did some cleanup and improvement in in the description and the and and the definition for the recording set, which is a whole discussion in itself, and that's that's up next. But before before I get to that, any other any questions or anything on on, you know, the changes here?

[00:21:13] Thomas McCarthy-Howe: Yes. One quick question on the should stuff. So I so I I met with Hank a couple times too. And what I what I didn't know was if you don't make any sort of marker on, on the should or must language, it's assumed to be a must. And so he found that problem on parties, right, where parties didn't say it it should be. It said because it didn't say anything about it. It said it must be.

[00:21:44] Daniel Petrie: Yeah. I mean, there there is overall, there there is a statement in there that basically each of the each of the parameters is marked as either optional or if it's not marked, it's a it's assumed must. Right? So overall, there's that. There is I I mean, I what I tried to do is always call it out. You know? Because that was kind of one of the issues that Hank said is that it was ambiguous. It it isn't it just wasn't explicitly called out for each of the parameters. And so I tried in this this round of edits. I've tried to call it out and make sure there's normative text.

[00:22:19] Thomas McCarthy-Howe: Okay.

[00:22:19] Daniel Petrie: Great. Even though it says that unless, you know, unless stated otherwise, all the parameters are man mandatory. Up in the syntax section, it says that.

[00:22:30] Thomas McCarthy-Howe: Okay. Right. Thanks for for, you know, getting that.

[00:22:35] Scott Godin: One of I'm just wondering if there's any point in carrying around the JSON schema anymore. From what I understand, you can generate you can generate the JSON from the CVDL, but you can't go the other way. So

[00:22:50] Daniel Petrie: I I think Rowan would loudly complain because he was one of the people that kept pushing for JSON scheme.

[00:22:56] Scott Godin: Okay. I wasn't wasn't around for that discussion.

[00:22:58] Daniel Petrie: That was I. Yeah. Okay.

[00:23:01] Thomas McCarthy-Howe: That was I.

[00:23:02] Daniel Petrie: No. I don't know. I ain't leaving both in. You know, I you know, they're both about you know, neither of them are tested well. Right? And so they're both informative. I don't I don't know. I

[00:23:17] Chris Wendt: I think there was some conflation of CBOR to CDDL, which I guess is not true. So Correct. I think that

[00:23:27] Jonathan Rosenberg: Did did Ron object to CBOR or he objected to CDDL?

[00:23:31] Daniel Petrie: I don't know if he he objected to CDDL. I think he explicitly wanted JSON schema.

[00:23:35] Jonathan Rosenberg: Right. But c my understanding is CDDL is like a meta schema that can generate JSON schema

[00:23:40] Thomas McCarthy-Howe: or permissions. That's correct. Yes. And and my and my my original objections to it was against CDDL, not CDDO.

[00:23:50] Jonathan Rosenberg: Right.

[00:23:51] Thomas McCarthy-Howe: Right. I think there's no way we're gonna get, you know, web developers to to start using wire protocols on the application level ever.

[00:23:58] Daniel Petrie: But I I I teased that way back when people said, no. We don't want CBOR. I teased that out. I back then.

[00:24:08] Thomas McCarthy-Howe: We're we're smarter now, Dan.

[00:24:09] Daniel Petrie: And then I said, Shall I keep CDL? Not CBOR, but shall I keep CDL in there as a schema definition? Then people said no. And now it's going back in. Right? Alright. So I I at this point, let's leave them both in. You know, what what

[00:24:28] Chris Wendt: Yeah. It doesn't hurt The

[00:24:30] Daniel Petrie: work is done. Alright?

[00:24:32] Jonathan Rosenberg: Well, maybe just just just remind me, Dan, the doc the the the issue is if there's inconsistencies, what's what's governing. So this the does the and if remind me. I think you said that the the document says the text is normative?

[00:24:45] Daniel Petrie: Yes.

[00:24:46] Jonathan Rosenberg: And But what about okay. Let me poke at this. Okay. What about cases where the text says nothing about in you know, so there there could be details in the syntax that don't show up in the in the in the text, for example, like, an array limit or an op missing optional parameter or whatever. Like, what if what if there's a soup the schema is a superset of the document, one of the two schemas. What what happens?

[00:25:09] Daniel Petrie: The the text wins. You know, whether it's right or wrong, the text is is normative.

[00:25:16] Jonathan Rosenberg: Alright. Okay. I don't have a strong enough opinion to make you wanna make changes on this.

[00:25:20] Chris Wendt: Well, and I think

[00:25:21] Daniel Petrie: that's My my biggest reason for that is the schemas aren't tested. Right? The text is tested. It's tested by humans, you know, which are fallible, but but the the text has been tested. And, you know, there are been tweaks to that, to the text, obviously. And so it you know, the latest version isn't isn't tested. But, you know, the no nobody's using you know, how many people have been using c the CDDL or the JSON that's been in there for a year and a half? Right? Nobody's testing that. People are reading the doc.

[00:25:56] Thomas McCarthy-Howe: Well, you know what? Yeah. Well, yeah, the the fact that that the examples did drift pretty significantly from the text does indicate that the that the the JSON wasn't being used to your point.

[00:26:11] Chris Wendt: And and I think that was the exercise that Hank was trying to go through to

[00:26:15] Thomas McCarthy-Howe: It was. Try to

[00:26:16] Chris Wendt: normalize that. And, you know, there is I mean, that is not the preference, but there is erratas and potential updates that could happen if there's any serious contention between those things, I guess. So

[00:26:30] Daniel Petrie: Yeah. I mean, it's just a matter of confidence in in the in the fact that, you know, the text is, you know, as it's been tweaked, but it's still it's been around. It's been you know? And and there are just not enough users testing the the the the either of the schema's definitions to to to have any confidence for that, In my mind, anyway. I don't know. Else on on this this on on the changes? Next slide. So the open issue. So in in Vienna, I presented a recording set concept for grouping sets of of dialogues, which are, you know, pieces of a call, whether they be the the entire duration of call or just talks per type seg type segments. The this new it's a new dialogue object type that does kind of a grouping. Right? It lets you say that, you know, these these recordings are all part of a a single single call or conference or whatever you wanna call that conversation. And it it so I brought this up and and this solves five different issues that were open on the on this this multi segment or multiple recordings for for a call concept. And and now there are a couple issues with that, and I'll I'll talk about about those afterwards, but let's just talk about

[00:28:24] Jonathan Rosenberg: Do do you have the five do you have that list of the five?

[00:28:26] Daniel Petrie: Yeah. It's on it's in that it's I have the I think that's the next slide. Okay. We can we can hop to that. And no. I'm sorry. It's so I'm sorry. Skip two more slides. There. These are the five issues. I hid them. I, you know, posted these on the list. I forgot when it was earlier this year. And, yeah, and towards the beginning of the year, I think. And these some of these came out of the last work group meeting which we had in interim meeting we we had in January. And so I'd it identified some of them. And then in thinking through those, I found a a couple more and that's so that's how we got to five these five issues. There were there were a few other multisegment issues that, were, you know, were solved in other ways, and I I didn't I didn't, didn't bring them up here because they really the dialogue set doesn't doesn't have anything to do with with those other issues. So it's just these five issues. I can walk through them if you want or, I don't know, if you wanna read or but there's Yeah.

[00:29:44] Jonathan Rosenberg: K.

[00:29:48] Daniel Petrie: So

[00:29:52] Jonathan Rosenberg: Yep.

[00:29:55] Daniel Petrie: So these were the five issues that we they we're looking to have, and Scott had this idea that of of this of this recording set concept. And I ran with that because that was better than some of the other options that I had had had suggested. And and the nice thing is it solves all all of these, having having this this recording set. And actually solves some other problems too or makes or simplifies some other issues and things like that. Like in a transfer case, when you've got multiple, know, recording or dialogue objects in a in a in a single call or a conference. In transfer, you you you, you know, you don't have one dialogue to refer to. You and so you end up having to have an array of of dialogues that you refer to if you wanna reference the original call or the consultative call or the the the target transfer call. And so with the recording set, it gives you a single thing to reference, which is nice. So it simplifies that, you know, you know, referring to the entire call, you no longer need to have an array of indices for each of the dialogues that are part of that call. You can just refer to the one item. And so it's simple. And and it's transfer is one example. Well, there are other places and things like that where you hit need to refer to a dialogue. And so having this single thing to refer to really simplifies the the the, you know, these references to to when you wanna refer to the call as opposed to a specific recording segment or or or a specific speaker within within a conference. And so I I I know it's yeah. You know, there's some concerns. It's it's not the prettiest thing, but it it actually does. There is some elegance to it. Right? There's it it it does simplify things. If you want, I can actually, I can run through most of these in in the the prior slides kinda illustrate these issues. Yeah.

[00:32:07] Jonathan Rosenberg: Can we can we go through it? Yeah.

[00:32:09] Daniel Petrie: Yeah. So if we back up two slides. We it let's So assume in in this and this is the worst case scenario. Right? You know, there this really solves problems in in the two different kinda scenarios. One scenario, you have a single recording for each speaker or, you know, stream. Right? And then it could be multiple speakers in a stream. But you have a single recording for each each speaker, and that's the whole duration of the call. Right? So that's kind of the

[00:32:54] Jonathan Rosenberg: Yeah.

[00:32:54] Daniel Petrie: A special case of this, if if you will. But it if I think just looking at the Talkspert kinda scenario, you know, illustrates all of the all the problems easier. But so some of these are are a problem in both case. But so I I just illustrated the the tox part. So we've got three different parties. They each have one tox part. That's, you know, pretty boring call. Right? But so we've got three different recordings. One for each of the parties. You know, they say something and and they'll never talk again in the call. Right? Just a a simplified case.

[00:33:33] Jonathan Rosenberg: They all hear each do they all hear each other in

[00:33:36] Daniel Petrie: this So the idea is that these were they they all can hear each other, and they all they're all in a single call, a single conference. But the the the only thing it was recording was when someone was actually talking. Right? Right. So Right. So it's trimmed silence was basically trimmed out of their their Sure. Their their their recording. And as I said, just it's simple. Each each party has one talk spurt. Right?

[00:34:01] Thomas McCarthy-Howe: Right. Right. So to make this make this actually practical, the first talk spurt is you're the first kid going, I'm hungry. Can I have some dessert? The second talk spurt is, I'd rather have some pizza. And the last talk spurt is mom saying, go to bed.

[00:34:19] Daniel Petrie: Okay. So anyway, so we had these three parties. We have three different dialogues, three different recordings. Right? That's that's the scenario. Now what's the problem as they say, Chris? First of we have these events. Right? That they go into a dialogue. Like, when did a party join? When did a party drop out?

[00:34:39] Jonathan Rosenberg: Yeah.

[00:34:40] Daniel Petrie: You know, someone pressed the d t m f key or or, you know, some other kind of, you know, application button. These things get attached to a dialogue with a timestamp. Right? So you you know and so, you know, we now have these events where there is no dialogue during that time period. Right? So there's no place to hang these off of. Right? I mean, I suppose, theoretically, you could put it on one of the dialogues, but it it it would be out of bounds of the start and the duration of the recording. That's kinda weird.

[00:35:11] Jonathan Rosenberg: Well, I'm I'm gonna launch a counterproposal in a moment, by the way, on this whole thing. We'll keep

[00:35:15] Daniel Petrie: going. Okay. Nice.

[00:35:16] Jonathan Rosenberg: Think it's a go ahead.

[00:35:19] Daniel Petrie: And so the these these events don't have place to be attached to. Events that are part of the dialogue. Right? I mean, you know, when a button presses, part of my my dialogue in in my participation if I if I press a button and or, you know, when I join, drop, and all that kind of stuff. When and so we also don't we lose the the kind of the point of time of where when did this call begin? When did it end? Because now, you know, we were using start and duration to to kinda illustrate that. We don't have that anymore in these in these segmented recordings. The other thing we don't have is if we've got a party that didn't didn't say anything, there's no recording for them. And or, you know, either passive listeners, we don't have them. We don't have a place to to mark them as participants either because the dialogues, the way that we we have the dialogues, you you mark the participants as being part of one of the streams. And, you know, you can have silent streams or if it's all a single channel, there's no differentiation of streams anyway. But in in those those scenarios, you have a place to mark who all the participants are even if they weren't active and didn't say anything. Right? So I I think I illustrated all of those five problems. I I may have missed one. I don't know. I I hope they let's go to the next slide. So what this recording set does is it gives us a place to put the events. The key and party join and the party dropout and and the other kind of party history events. So we've got that. It gives us a way to refer to all the recordings that that are part of this call or conference or whatever. So we have this first dialogue, which is a dialogue set, you know, the the top row there. It's you can list all the parties whether they, you know, were were active participants or not. And and then we refer one way or the other, either from party and and this is kind of one of the open issues is we refer refer, you know, the the dialogue set and then refer to all the other recordings as being, you know, a a part of that of that call. Right? So Yeah. We have the we now have the full duration and and the start time of the whole call. We've got places to hang off our our our events. And we have we have a way to show all the participants. Yeah. Otherwise right? So this this is what the, you know, the dialogue set sells.

[00:38:23] Jonathan Rosenberg: Yep.

[00:38:26] Daniel Petrie: So now, Jonathan, I don't know if you want any into these slides up to to talk about your suggestion.

[00:38:35] Jonathan Rosenberg: Yeah. So I guess part of what of the main thing that's motivating my comments is is to think hard about how to merge together the work call strap with this, right, and and setting this up so that it's easily extensible to now represent an AI agent trajectory with things like tool calls and all all kinds of stuff like that. And so sort of the I I think and part of the problem is is it's you're you're almost making this recording set like a it's like a bolt on when when in reality, it's actually the primary object of the system. Right? It's the primary container in this thing that you like you said, holds the actual audio recordings and events. And and events are super important, by the way. And and if you go think about the AI trajectory, they're the most important. They're gonna be, like, the the tool call request, tool call result, you know, a reasoning trace or whatever. They're gonna get a lot more of those things. And so my so I feel like it's a bolt on rather than making it a first class citizen. And so my that's problem number one. And problem number two is I think it's just it's all conflating, recording, and participants and events together. And so my suggestion was and and it feels like it was almost done for maintaining background compatibility, which I which I get is perhaps what you're trying to do. But if you were to sort of rewind for a second and say, well, what what does this really look like? I I think you conclude that there's it's not there's there's three core objects. Right? Just and just hear me out, man. So three core objects. At the top level, we have the idea of a session, which is the primary object in the in the per call's draft too. And it is a it is a primary container. It has a start. It has an end. It has identifiers. It has a UID. It's the it's a call, you know, in in the audio use case. It's an AI agent thing in another case. And but its primary role is a container. And inside of it, and it is literally inside of it in the Burkholder strap, but somehow by all by reference here, you have what I think is a separate thing, which is what which is dialogue. And to me, the dialogue is very much specifically shared content. And this is another thing that I think the draft currently munges these concepts altogether. It tries to make everything a dialogue when there's really three things. That's what I'm trying to say. There's a session. There's a dialogue, which is a piece of shared content audio transcript, and that and and and then there's events. And events are not dialogues. It's event like, this is to me when I get where things are mocked together, like a a dialogue an an audio a section of audio has a start and a finish or a start and a duration, which is a very sensible thing for dialogue. Events don't have durations. They're point in time. Right?

[00:41:28] Daniel Petrie: Right.

[00:41:29] Jonathan Rosenberg: So so you know and and then you have so that's events. So the way if if I were to think about how to solve this problem, I would rather and it's a breaking change. I get that. I would rename recording set to session, put the dialogues as children objects underneath the session, and the and and events as a separate object, which are peer to dialogue also inside of the session. Okay? And they all have time stamps, but dialogues have durations too. And then if you think about just the dialogue as the audio part, I think it just should be explicit about everything. And what I mean by that is there's three key properties of a dialogue that we care about. We care about who contributed to the audio. Mhmm. We care about who received the audio.

[00:42:20] Daniel Petrie: Right.

[00:42:20] Jonathan Rosenberg: And we care about who was actually speaking. And those are act as you all know, those are all totally remnant. So let me give you some variations on this. So let's say we have a system that just the simplest system is it mixes the audio from all the participants together, but one person you know, and you had a three party conference, one person never spoke. Right? So you can imagine the contributors are all three, the speakers are two, and there's actually one piece of audio, and it was distributed to all three. Then you have weird stuff like you have a sidebar in a conference. Right? Sidebars mock the model a lot too in an audio conference where now you have the set of people receive it or not the same for each of the different sidebars, so they're sort of parallel. So how do you model that? So just by being explicit for every one of these, like, who's who contributed audio into this thing, who was speaking, and then who received it, and just model those separately as participant arrays with maps to channels when you have multichannel audio. That's the thing too. I think the the the the thing is, like, it's very married to the idea of multichannel multichannel audio recording, and it doesn't allow the Vcon itself to be the multichannel. So for example, to me, the most natural thing is, oh, well, let's say we had, you know, a conference with six participants. We have speaker separation. Yes.

[00:43:43] Daniel Petrie: Sorry. I I need to take this call.

[00:43:45] Jonathan Rosenberg: Okay. Yeah. Go ahead. I'll I'll pause, and then I'll finish my Terade.

[00:43:51] Chris Wendt: In a former life, I used to work in MPEG back in the days where QuickTime and other things were popular formats and m p four essentially inherited QuickTime tracks and stuff like that. And I don't know. There's a rabbit hole you can sort of go down, like you know? I'm actually curious if, like, if you have multiple participants with different clocks on their computers and you have a multi hour call, does the precision of each track depend on the audio clocks that are I think QuickTime deals with those things, but, like, you know

[00:44:37] Jonathan Rosenberg: Is there multiple are you collecting recordings from each participant individually in that, model?

[00:44:43] Chris Wendt: Yeah. Because it might come from different computers with different or different mobiles or cameras or whatever with slightly different time clocks. Yeah. And so synchronization becomes a problem, and and and there is way ways to deal with that. But, like

[00:44:59] Jonathan Rosenberg: Are are we solving that in VCon, Chris? I I'm not sure.

[00:45:02] Chris Wendt: No. I I I I I don't actually advise that, but, like, I I feel like we're potentially going down a rabbit hole here if we try to make it it it seems to me becoming essentially a quick time format versus just a simple representation of

[00:45:22] Jonathan Rosenberg: I don't I know. I think what the reason I'm I'm making these recommendations, it gets back to AI agent trajectory. Because I think if you wanna use this store to store what an AI agent says

[00:45:32] Thomas McCarthy-Howe: Mhmm.

[00:45:32] Jonathan Rosenberg: For example, in a session, I am gonna and and and again, Dan isn't here, so I don't let me wait till I till I explain, right, when he gets back. But that that's why I I think you need to break it up to be more fine grained, basically.

[00:45:46] Chris Wendt: Yeah. I'm I'm bringing it up sort of as a sidebar just because I think Yeah. Yeah. You know, like, are we using the audio as the reference for when things happen in time, or are we mapping those to events that are the part of the time track of the, you know, the the set of sessions that that happen and, you know, what if there is clock drift or other things?

[00:46:15] Thomas McCarthy-Howe: Well, you know, so Yeah.

[00:46:16] Jonathan Rosenberg: But the clock drift is only a problem if you're trying to if you're trying to solve the problem which you just described, which is you're trying to collect recordings from multiple different sources. I'm I'm not suggesting we solve that problem. Certainly, you don't need that or want that from the AI agent use case either. So unless you think we need to solve that, I I think you just let me put that one out.

[00:46:35] Chris Wendt: I think it only becomes a problem if it's, like, a multi hour call, obviously.

[00:46:40] Jonathan Rosenberg: Even from a single source. Let's say you record a multi hour conference call from the server, from just normal conference bridge or switch one.

[00:46:46] Thomas McCarthy-Howe: Okay. So there there there's a difference between, you know, packet alignment. Right? It's a really it's a real question of around

[00:46:53] Chris Wendt: Right.

[00:46:54] Thomas McCarthy-Howe: Right. And I and so I think just jumping up from the very top for a second, I think my point in the VCOM is always could you express it? Not not could you, you know, reproduce it, but how how much how closely could you get to re to expressing the conversational shapes we have to express?

[00:47:14] Jonathan Rosenberg: Yeah. Totally. Yeah. And that that's why this is fun that's ultimately, this is a model. Right? I mean, so the Right. The the data model is more important even than that's as a superior even to the syntax. Right?

[00:47:24] Thomas McCarthy-Howe: Correct.

[00:47:25] Jonathan Rosenberg: And and right now, like, in VCon is, like I mean, basically, everything's a dialogue, and I'm suggesting that's that's gonna be insufficient to model these these situations. And I think we're gonna need to Yeah. Introduce distinguished session and event and and and dialogue, and then participants intertwine on all these different things Yeah. As as, I guess, a fourth object in the system.

[00:47:50] Thomas McCarthy-Howe: Yeah. Yeah. That's interesting. I mean Yeah. Just just again, going back from the top, the original idea was we're looking to, you know, express conversations and then accurately, you know, say who whose conversation it was so we could pick their data, which is different, which is in in addition to what you're saying, Jonathan, which is also very true. Right?

[00:48:14] Jonathan Rosenberg: Well, they all get intermunned together. That's that's why this thing is super interesting to me. Right? Super interesting. Like because the now, especially voice AI agents take which was the traditional use case for VCOM and the thing that, you know, that let's just call trajectory, which is what the protocol strap is. It's it's a it's an array sequence of what the agent did. Those worlds now collide. And so I I think that that makes it super interesting to have a format that can represent the combined universe

[00:48:43] Thomas McCarthy-Howe: A collision.

[00:48:44] Jonathan Rosenberg: Because they have they have collided. Right? Yes. And so we shouldn't ignore that. And so in many ways, like and, again, I want I want Dan to come back before I make this

[00:48:53] Thomas McCarthy-Howe: Well, I I I think the best movies are action movies. I think collisions are great. So do that.

[00:49:00] Chris Wendt: I think maybe what I was trying to say is complementary to that where you have whether it's recording set or session, you have, like, a a master track that you're mapping events that happen in the call to Totally. As as the timeline, and then you map the audio clips you have to that rather than because I think we're approaching it from the other side of the audio clip becomes the timeline. Okay. So I actually like the direction we're going here because it makes more sense to to have the master timeline and and synchronize it to events versus the other way around.

[00:49:39] Jonathan Rosenberg: I mean, you basically did it. If you look at this picture, I mean, it's just Right.

[00:49:42] Chris Wendt: Right. Right. Yep.

[00:49:43] Jonathan Rosenberg: That gray box looks like a session to me, Chris.

[00:49:46] Chris Wendt: Well, and and that's what triggered yeah. That that's what triggered my memory to

[00:49:50] Thomas McCarthy-Howe: Yeah. Yeah.

[00:49:51] Chris Wendt: Yeah. Thinking about it

[00:49:52] Daniel Petrie: that way. Yeah.

[00:49:53] Thomas McCarthy-Howe: So one one thing, as we're waiting for Dan to get back can maybe Dan's back?

[00:49:58] Jonathan Rosenberg: No. No.

[00:49:59] Thomas McCarthy-Howe: He's talking about the MPEG and dialogues.

[00:50:03] Jonathan Rosenberg: Yeah. Alright.

[00:50:04] Thomas McCarthy-Howe: One of the things that we've been working on, which is the same thing that Jonathan has asked for, like, two years ago, was a streaming vCon. And you stream the vCon you stream the vCon by putting an MPEG dash URL in the dialogue. So it's invariant to to when the session happened, but you can always get to that session either as it's in flight or after.

[00:50:28] Jonathan Rosenberg: Yeah.

[00:50:28] Thomas McCarthy-Howe: Right? Because it's it's because it's a manifest protocol.

[00:50:32] Daniel Petrie: Okay.

[00:50:32] Thomas McCarthy-Howe: And that allows you to make the vCon at the beginning of the con conversation.

[00:50:36] Daniel Petrie: Okay.

[00:50:37] Jonathan Rosenberg: Yeah. Yeah. I mentioned that use case too. I think it's

[00:50:44] Thomas McCarthy-Howe: It it it's great for real

[00:50:45] Jonathan Rosenberg: I have to I have to wrap my head around that because, like, it, you know, it then the the becomes not the authoritative source anymore. I mean, you basically just delegated the whole thing to the dashboard. Like so

[00:50:56] Thomas McCarthy-Howe: Well, no. Nope. No. I actually think it I think it can no. It's still the author authoritative thing, just that the underlying media is stateful.

[00:51:04] Scott Godin: Yeah. Yeah. Yes. The one thing I really don't like about the solution, and, Jonathan, you're hitting on it, is I don't like repurposing dialogue set as a dialogue type.

[00:51:16] Jonathan Rosenberg: Exactly. Yeah.

[00:51:17] Scott Godin: It just feels like a bolt on your right. Yeah. Yeah. That would be good to address, which is why I was saying in the group, I don't like even calling it recording set. I think it needs to be something generic. Something like session, I think, solves that.

[00:51:29] Jonathan Rosenberg: Yeah. And then you just put the instead of being references, which is what it is, because you put it at the peer level, it's just a literally a container. So a session is a top level JSON object, and in it is and, again, the Birkhall strap basically does this. That's why if you if you wanna bring these together, you need the top level structure map, and you need so that a session is basically an array of of timeline events. Right? And those timeline events can be dialogues, which is really what a dialogue if that's the recording. That's the meat of what VCOM addresses today. Just leave that to be an actual, like, audio or or text or you know, that's great. And that's distinct still from events, which are point in time things. Party join, party leave. We'll talk about transfer in a minute, which, again, I think is misrepresented to the dialogue also when it's an event. And then and then each of those are point in time, and then you just have a timeline review of it then. Okay. Yeah. That's okay. And with that, we've concluded we're gonna rewrite the entire document. Oh, yeah. You're

[00:52:28] Daniel Petrie: back. Alright. Sorry. Now this is related to my electrical problem.

[00:52:33] Jonathan Rosenberg: So Yeah. Oh, yeah. Well, that's that does sound like that's more important. One of

[00:52:37] Scott Godin: the things we need to be careful of with session is to remember that we're, you know, we're capturing emails here and and chats. And does the word session really fit with a bunch of email exchanges? Maybe it does,

[00:52:48] Jonathan Rosenberg: but I think it does. I mean

[00:52:49] Scott Godin: We gotta keep it in

[00:52:50] Daniel Petrie: mind too.

[00:52:50] Jonathan Rosenberg: Yeah. I mean, it's it looks like a thread, I think. Right? And so I I forget where I was when you when you stepped out, Dan, but but I was saying, like, the one of the reasons one of the things I also think is important here is if you think about the the AI agent use case of the one that I I'm most interested in, which the Burkhal's draft also doesn't address. So, like, this is what I was saying. It's like the Burkholz draft is is is really focused on almost like coding agents and back office agents where there's an interaction with the user. It's primarily text oriented. And then and then the current vCon draft is audio conferencing. Voice AI agents take those two things and they just munch them right together. And that that's, you know, one of the and and and I think a solution that allows us to address the combined union of those two things is really important. And the other thing I was gonna say is I

[00:53:44] Daniel Petrie: mean, I think that's you know, I I mean, I think it's what we've been trying to do, right, is I mean and not focus on the AI problem, but focusing on you know, we have conversations in parallel. Right? We have text conversations. We have chat conversations within within, you know, a video conference and things like that. And so that that's that was certainly the intention is to be able to capture multimodal conversations in parallel. Right?

[00:54:11] Jonathan Rosenberg: Exactly. So so the the last thing I'll say is, like, I I I think this this concept of a again, we need a better word of than recording the you know, taking an AI agent and having its log of what it did. Okay? What it said, what was said to it, what its reasoning was, what the tokens were, what its chain of thought was. I'm telling you right now, man, this is gonna be one of the most important file formats that we have made in the history of the Internet in a long time. The amount and I think the the amount of people that are gonna look at those things, share them, trade them, analyze them. I mean, it's gonna be a lot. Okay? So I I It's

[00:54:57] Daniel Petrie: a good for for test strategy, right, yeah, for for your AI session. Right?

[00:55:02] Jonathan Rosenberg: Is That's what I'm saying. So what what I'm trying to say Dan, let me just say it. This AI agent use case is the killer app for Vicon. And Vicon can either be a little footnote in the history of telecommunications or can be one of the most important formats produced for the Internet. Dan, which of those would you rather be? Because I literally think we're on the cusp of this decision. I am not being

[00:55:22] Daniel Petrie: And you think and you think that recording set is going to make it Yeah. Ignored.

[00:55:27] Jonathan Rosenberg: Yeah. Well, no. It's it needs to be amenable to do stuff that look like an AI agent. And I'm suggesting what and in a lot of ways, it's not a big change. It's I'm suggesting it's a it's a rename, but but to disentangle these pieces that have gotten entangled because we've it's still back carrying forward a lot of the everything is a dialogue, you see.

[00:55:48] Jonathan Lennox: Jonathan, I don't think you actually said the word session since Dan got back. So say that.

[00:55:52] Jonathan Rosenberg: Session. Right. So so what I'm suggesting, sorry, is that I thought I did say it, but what I'm suggesting is what you call the primary objects in the system. Right? And and the most important thing. Even more important than the syntax is what's the fundamental data model that we're trying to have here, and can it be used to represent the different use cases we want? And then and then lots of there's lots of details under the data model that are almost like, that's the extra sauce. You know, that's the extra pudding. Once you've got the core data model, what are the objects that they're that's what matters the most. And so I'm suggesting that rather than basically everything being in dialogue, which is how we have today, it's a session which has a start and an end, and it is a primarily container object that contains a timeline. And there's two primary objects in that timeline. There's events that are point in time, and there's dialogues which represent shared content that that have two points, which is either start and end or start and duration, which is what's there today. It's totally fine. Right?

[00:56:48] Chris Wendt: Yeah. The event is the start of the that recording.

[00:56:53] Jonathan Rosenberg: Say it again? You could

[00:56:54] Chris Wendt: think of the the recordings as the event is the start of that recording. So and Yeah. Yeah. Exactly. Utterance could have an event or whatever.

[00:57:03] Jonathan Rosenberg: Yeah. Yeah. Yeah. So I I do think well, I mean, it gets interesting. You could model text as either dialogues or events. I I I Right. We have to I have to think about that. But but

[00:57:13] Daniel Petrie: but two calls There's there's sometimes both. I mean, we have we've modeled both in in in the way it is today. It's, you know, you can it's either a point in time or you can capture the typing period. Right? Yeah. In in in in

[00:57:28] Jonathan Rosenberg: But the name is even wrong. Like, a tool call this is what like, if tool call is definitely not a dialogue, a tool call is a is a point in time event, request and a response, and it has a whole pile of parameters that, you know, are new for VECON. Right? They would have to be we'd create you know, have to add them in. But I I think unless there's an event, what I'm advocating for is that the base VECON core document have event as a first class object underneath session as a peer of dialogue. That's what I'm saying. And and that also conveniently handles a lot of the use cases that you're even showing here. So things like party to join, DTMF, these are all events. And an event is attributed to a source, right, that originated it. So a tool call is originated by the AI agent. A DTMF is originated by the user. Right? They are they are a point in time, and then there's a there's event specific parameters. DTMF would be the key or whatever you call it, tool calls, all the input parameters that went to the tool call, the URL, all that good stuff. So as long as you have event, I think you can model all this stuff together. And then the challenge with what I was suggesting with if we think about Voice AI agent, when I have a Voice AI agent, the model you're gonna want for it is that if you look at this picture, every utterance produced by the AI agent is gonna be a dialogue. Right? And that's be and and it won't be one giant recording. And that's because we're gonna need to attach metadata to every single one of those utterances. How many tokens were burned in the production of this utterance by the AI agent when it spoke something out? How many tokens were burned? What was the model? What was the the thing I'm super interested in these days is what was the exact prompt including the entire everything cached and all the uncan everything up until the point where, you know, that was provided to the input to the element that generated that output, which is the dialogue output of the thing. That's another parameter that really matters. So so those Vcons would look like inside the session is a series of dialogue, right, alternating between the AI agent and the user, the AI agent, the user. So, you know, start and stop, start and stop, right, alternating. And and the AI agent dialogues have tons of extra metadata. The user ones look a lot like this. But for each of those now, they have, like again, if you go back to the metadata model, I'm suggesting it can help, can model this as each dialogue fundamentally has who contributed to it, who who observed it, and who was speaking during it. And I and and just last comment on that, I separated out in my mind the who contributed to it from who's speaking to it so that you can cover the simplest case, which is just one giant flat mixed audio file for a regular old phone call, no AI agent. Right? That'd be one giant dialogue. All the participants contribute to it. No active speaker indication whatsoever. But you can also model, if you want, a recording where I have speaker separation and each speaker like this has their own audio, But there is no active speaker detection. So there, you have end recording, end dialogues, each with the same start. So now they're in parallel, each with the same end. And the contributors are each just each its own respective participant and no active speaker indicator. You can also separately have if you really wanna get fine grain, every single utterance from every user is its own audio dialogue, and they're in parallel. And now you put the speaker in there. So you can model all those different variations in this with that same simple data model. So that that's sort of my my counter proposal to the recording set is to rename it session, make the change with dialogue and event or peer or children of it embedded in it, split out event as separate, and remodel DTMF join, maybe start stop recording, Chris suggested that. I actually really like that as as events. That that is it's a big change. I get it. And I'm more than happy to write a a PR for it because I'm unemployed at the moment. So but that sort of be my proposal.

[01:01:51] Daniel Petrie: So let me ask. I can we maybe make a compromise between that and what we have, right, and not blow everything up?

[01:02:03] Scott Godin: Yeah.

[01:02:04] Daniel Petrie: I think it's not disruptive to take party history and make that its own object you know, own, you know, upper level object. Right? So it call it events. I mean, whatever. The name's not not that important. But we take party history, the the events out. I think it's it's that's not a huge impactful thing.

[01:02:31] Jonathan Rosenberg: Do do do you just not you don't wanna like, sorry. I I don't so you're saying no event object? Just to understand what your proposal. No event object.

[01:02:38] Daniel Petrie: No. No. Yeah. Take take basically, take party history and and move it up a level in the hierarchy. Right?

[01:02:44] Jonathan Rosenberg: Rename it event or keep it party history?

[01:02:46] Daniel Petrie: Yeah. No. No. Events is fine. I mean, the name is not important.

[01:02:50] Scott Godin: I don't

[01:02:50] Daniel Petrie: I don't I don't

[01:02:51] Jonathan Rosenberg: I don't know what you

[01:02:52] Daniel Petrie: wanna call it. So what I I I I I see I I mean, I I I hear what you're saying, and I definitely see the value in doing these things. I am on the other hand balancing we've got four years of VCOMs out there. Right? And I don't wanna blow them up.

[01:03:11] Jonathan Rosenberg: So that's why I'm asking, do you care about you wanna preserve backward compatibility?

[01:03:14] Daniel Petrie: Is it I I think some pieces of yes. I don't wanna just totally throw this all out and start over again. Right? I I and and and

[01:03:22] Jonathan Rosenberg: so Those aren't the same statements.

[01:03:24] Daniel Petrie: I'm just

[01:03:25] Jonathan Rosenberg: saying, like, you can break backward compatibility. What I'm suggesting, I don't act is not actually a monster diff because most of the stuff I talked about goes in the the another draft that's specifically all the AI agent extras. All you gotta do is like, all the analysis stuff is the same. Most of dialogue is the same. I'm just suggesting a a a a new layering, but it it is backward compatibility breaking even though I think it preserves most of which in the document. And I am making the argument, and this is what I want you to, you know, to to hear me on this, Dan. We're at a I'm I'm sorry if I'm sounding what's, like there's a word for this, like, over overstating things. But, like, we're we are at a moment in history here for this technology, and it it's like, if VCon is just ever for recordings of connects in our calls and is not relevant for AI agents, that's gonna be a error in

[01:04:25] Daniel Petrie: this data. I'm gonna try to see where we can accommodate that, and I absolutely want to accommodate that. Right. Not I'm not I'm not pushing back that. I I I I don't see it as cataclysmic, I think, as as you do is that that people aren't gonna do that if unless we make all these, you know, changes. And so when I when I'm trying to first of I try to tease back. Do we need multisession for AI? Is the v is it sufficient for for a v con to be the session? Right? Do we do we need multi you know, I I would I kinda ask that question, first of all. We do, I for voice, but my question was, do we need it for AI?

[01:05:11] Jonathan Rosenberg: Oh, oh, let me give you the let me give you the killer use case, sub agents.

[01:05:18] Chris Wendt: It isn't session just quick thought. Isn't session or recording set a new object that if you want backwards compatibility, you don't use that? If you want the new path forward, you do use that? Is it or am I simplifying how this

[01:05:34] Daniel Petrie: I I think that if I understood quickly your suggestion is we're taking, you know, the four big objects, party party dialogue, attachment, and analysis, and we're moving them down a level in the hierarchy and creating a a new upper level object called session. Right? Is that is is that what I heard your proposal was?

[01:05:56] Jonathan Rosenberg: I think so. Yeah. Yeah. Yeah. I mean, I I if if you guys yes. Let me say I was gonna write it up in a, you know, three pager.

[01:06:03] Thomas McCarthy-Howe: Yeah. We you

[01:06:03] Jonathan Rosenberg: know what? Yes. It's session at the top level.

[01:06:06] Chris Wendt: If we do it right, could it could that be the backwards compatibility compromise?

[01:06:11] Thomas McCarthy-Howe: I think it I think it I think there's an it feels to me like we could do that.

[01:06:16] Jonathan Rosenberg: Does that matter, though? I I wanna know, like, are you are you optimizing for backward compatibility? Is that is that

[01:06:21] Daniel Petrie: Am I botoxing? No. I but I'm trying not to strand. I mean, we've we've been talking about this stuff for four years, and people have been using it. And then to all of a sudden disrupt and say, alright. You know? You

[01:06:32] Jonathan Rosenberg: know, I wish this AI thing didn't come along, Dan, like, and get

[01:06:35] Daniel Petrie: No. I I I but I really Jonathan, you me? My point

[01:06:40] Jonathan Rosenberg: point is that the one thing

[01:06:42] Daniel Petrie: is this is gonna be for. Gonna use it if we don't do this. I I No.

[01:06:46] Jonathan Rosenberg: Not saying that. I'm not saying I'm saying it's a I'm I'm saying you're gonna it's a lot of changes. Like, I guess you gotta pile all the rest of the stuff in, and I it is not obvious to me, let me put it that way, how to do this without introducing a session concept that's a container that at least allows me to model things that aren't like an audio recording, like a dialogue. And you did it here already. I mean, that's why I'm saying you already introduced it. You just didn't call it session.

[01:07:16] Daniel Petrie: Yes. No. So that's but that's what I'm wondering. Can do we have to change that you know, insert this new hierarchy to do this? I don't think so.

[01:07:26] Jonathan Lennox: I mean, would it be possible to say that you you can choose to have an implicit session? Like, you know, if you only have your session as simple, you can have an implicit, which is basically the current data model, or you can have an explicit session.

[01:07:41] Jonathan Rosenberg: Well, let me ask some hard questions, Dan, I haven't even forget AI. Let's throw AI out the window. Tell me how you do this in let's say we wanted to use VCONS to model a, like, a a Zoom, Webex, or whatever.

[01:07:57] Daniel Petrie: Mhmm. Like,

[01:07:57] Jonathan Rosenberg: with, like, sidebars. How would you do that?

[01:08:02] Daniel Petrie: You would just you would have multiple recording sets.

[01:08:06] Jonathan Rosenberg: So in other words, multiple sessions?

[01:08:09] Daniel Petrie: Yeah. Yeah. No. I'm saying we we support that today. I mean, in this in this simpler case I mean, let's ignore the the these these recordings that we're talking about. In the case where you have a single, you know, one channel with everything mixed or when you have a a multichannel recording with a with a different stream for each of the channels, you it's easy and obvious that you what what your that you can have multiple sessions. We're building that. I mean, we're we're building for call centers today, we're building multisession VCOMs, but they we don't have these individual recordings per party or or talks per Yeah. We have either mono recordings, everything mixed, or we have multichannel. And we're we're doing it, we're using it. We're deploying that to customers now. Yeah. And and would be integrated. So, I mean, we I absolutely you know, you know Alright.

[01:09:07] Jonathan Rosenberg: Let me let me ask how this would let let me just let me for comprehension purposes, Dan, let me understand how this would work. Yeah. So you would have let's take a simple case of, like, we have the we have we just wanna model two sidebars. Let's just keep this simple. Okay? Right. So there would be two recording sets.

[01:09:26] Daniel Petrie: Yeah.

[01:09:26] Jonathan Rosenberg: Okay? And then

[01:09:28] Daniel Petrie: Well, no. I I in in I mean, it depends on on on what your recordings look like. If you would have a multichannel recording, you don't need the recording set. Right?

[01:09:39] Jonathan Rosenberg: How do you model the distinction that this there was clearly something that happened here, which is a sidebar. Right? Like, this meeting had two sidebars. If there's not two things in the vCon-

[01:09:49] Daniel Petrie: Well, there's there's two there's just I mean, if you have two side you you have a a general conference, and then you have two sidebars, and then you yeah. Right? And this

[01:09:58] Jonathan Rosenberg: is this

[01:09:59] Daniel Petrie: is the history. Right? You've got three different dialogues. And, you know, you each one is a has a recording, has a I mean, a sidebar is just another conference. Right? It I mean, it it happens in parallel with with with the the original conference, but it's just it's three different conferences. And those three different dialogues each with multichannel recordings, and and that's that's simple.

[01:10:20] Jonathan Rosenberg: But I but that but you're making a presumption again that this is where, like, the grouping constructs mirror what's missing. Just like, I'm saying the most interesting way to do the main I don't wanna do mixed audio with a single dialogue. Let's say

[01:10:31] Daniel Petrie: we Yeah. Yeah. No. I get it. And that's right.

[01:10:35] Jonathan Rosenberg: I mean, that's How would we group together the let's say there's five participants. Right? The five in the main. So how do I know these five dialogues in the main are distinct from these two dialogues in sidebar one, distinct from these two dialogues inside the three dialogues inside bar two?

[01:10:51] Daniel Petrie: Well, with with the dialogue I mean, using the dialogue set. Is that what you're asking? Or or, you know I mean, with the dialogues, the dialogue set is the only or or I'm sorry. The recording set is is how it's back today. But with with the with that, you'd have three different dialogue sets. Right? And, they each would have a set of parties. They each might have, you know, one or more recordings that are associated with them. And, and, you know, that it you and and you have a single, dialogue object to reference to each of those things. The original conference, the two sidebars, you have a dialogue set for each of those.

[01:11:30] Thomas McCarthy-Howe: Yeah. You know what, though?

[01:11:31] Daniel Petrie: And and and it and so you you have a definition of of all the the data. You have to keep those things separate so you can you can go with and say, alright. Who heard this person talk at this point in time? You you have all that information in there.

[01:11:47] Jonathan Rosenberg: I guess the thing I'm I'm getting stuck on is, like, the the dialogue list is flat. Right? So you would you'd have everything is is understood by pointers. Is that is that meaning, like, there there's a one dialogue, which is actually a dialogue set for sidebar one, and there's a second I'm just trying to understand.

[01:12:05] Jonathan Lennox: Is this how you'd

[01:12:06] Daniel Petrie: to Yeah. Yeah.

[01:12:07] Jonathan Rosenberg: One one dialogue that's actually a reek sorry, a recording set. Then the second dialogue that's a recording set, and a third dialogue that's a recording set. And then I have a fourth dialogue that's the first speaker for the main conference. And then another dialogue that's the second speaker for the main conference. Is that how and it'll all be flat inside the the VCon. Yes. Is that how you're saying it would be?

[01:12:27] Daniel Petrie: Yes. Okay. And and in in a lot of cases, this is useful for analysis. Because a lot of times, I don't care who heard what. I just wanna I care who said what, when. Right? And so it makes it easy to traverse that list and say, I I I can ignore dialogue sets. I don't I don't care. I don't care who who heard what. I just wanna know who said what, when, where.

[01:12:51] Jonathan Rosenberg: No. But I I I think it makes it harder to understand because, like, it gets back to instead of you have there is a natural hierarchy in this system. This is the point I'm trying to make. There was a natural hierarchy in this system. There was a top level conference call that had a main conference that had two sidebars. Right? There there were these and so the and each and inside the main conference was a bunch of audio, and inside each of the sidebars is a main. Yeah. A bunch of audio.

[01:13:14] Daniel Petrie: And so really I I mean, you you're thinking of that just because that's where it led from, but it it it in reality, there are three separate conferences. Right? They and that happened in parallel in time. And you use the original conference to launch the sidebars. That's that's I mean, there's no real hierarchy there in terms of this is part of that other conference. It's another conference that led out of the original one.

[01:13:39] Jonathan Rosenberg: Right. So that the hierarchy is it was spawned off of. Right? I mean, the And it's not I

[01:13:44] Daniel Petrie: I mean, it you can you don't one concept doesn't think that it's that it's a parent child relationship. The other concept is that it that they're peers. Right? And yeah. So, I mean, it how you think about it is is is not necessary, like I in in a parent child relationship.

[01:14:04] Jonathan Rosenberg: I I guess the the problem here here's where it gets back. See, to me, the I'm using the the the the conference breakout system an example to show that I think there is naturally hierarchy in the system. I I say this because and because in my I guess that's the main difference. And what I'm proposing is that rather than everything being by reference, which is what you have here, where a recording set points to the identifiers, the dialogues inside of it, as opposed to, literally, they are parent child in the JSON sense of the word. Right? And to me, the that's it's harder to follow, but it also when I think about the AI agent use case, when you have this idea that agents are gonna spawn sub agents that spawn sub agents, flattening the whole thing seems really hard. And then the second thing is, again, when I I did I did this analysis on the draft thinking about how to map it into Vicon, and one of the, like, holy shit things was exactly this, that it has a a notion that any that their their top level thing can can it can be hierarchical. Right? It has this idea quite deeply. I I mean, like, it could be a complete tree, actually. And so that we don't wanna flatten that in order to just because we don't want a hierarchy. Why don't we just introduce a hierarchy into Vcon? That's basically what I'm saying.

[01:15:22] Daniel Petrie: The other another way to think about this is maybe these are separate Vcons. And so you have a hierarchy of Vcons rather than the hierarchy of sessions. Right? And so you have the session for recon. You have a, you know, a parent recon that references child recons. They are separate conversations, and perhaps you wanna look at them separately, right, or or in in some sense. And and so you've got an you know, in the AI concept, you've got an orchestration session that that, you know, spawns off other, you know, agent conversations that are machine to machine that are separate VCOMs. Right? And so you have a hierarchy of of of VCOMs.

[01:16:10] Jonathan Rosenberg: But but I don't wanna have separate files. I mean, what's nice thing about the VCOMs is it puts it in a single file. So, like, I I wanted to be able to model like like a conference call. To go back to a conference call, I don't wanna have three VCOMs for a conference call that have these two sidebars. One for the main, one for each of the sidebars. Like, the one VCOMs file that represented that, that was a distinct object. It was a meeting. Right? It should have a single VCOMs for it. Right. But I should be able to it should be very easy to understand from that VCon that there was a main conference that's that had these two sidebars off of

[01:16:40] Daniel Petrie: it. Mhmm.

[01:16:42] Jonathan Rosenberg: Right? Explicitly, I'm saying. Like, literally, you know. So the way I would think about this is, you know, you'd have a VCon file. You would have a session for the main conference that has a start and end. And then inside of that session, there's an event which is spun sub you know, that literally explicitly says sidebar started Right. As an event. And then a session under that that represents the, you know, the sidebar. Right? And and inside each session has its own events, dialogues, participants, so they're fully contained. That that's that to me, that would be the most natural way, anyway, to model this conference beside

[01:17:19] Daniel Petrie: So these sessions would be nested? You'd have a session within the session?

[01:17:24] Jonathan Rosenberg: Yeah. Okay. And the main use case for the non AI being being sidebars in a conference call. It's not obvious you would do this for, like, a two party call, like you know? But

[01:17:39] Thomas McCarthy-Howe: Right. So,

[01:17:45] Daniel Petrie: again, I'm trying to juggle disruption versus versus a a combination here. What if what if we make the top level I think this kinda what Chris was saying, make the top level session optional. Right? Sessions can contain sessions. Vcon can contain a session or it can contain, you know, party events.

[01:18:09] Jonathan Rosenberg: Yeah.

[01:18:10] Daniel Petrie: And I I I'm for that. I I think I like the change of moving party history to events. Right? Is is a peer to party and and dialogue. I I I think that's don't think that's gonna break a lot. I think that that that that's and I think that's a good move. Okay. I

[01:18:31] Jonathan Rosenberg: I'm okay. So listen. If if you're if you're saying I care about backward compatibility.

[01:18:36] Daniel Petrie: I I do.

[01:18:37] Jonathan Rosenberg: Which is what you're saying. I think all you're saying is, like, you you could put the following kind of words on the document. Like, it is recommended but not but not must. It is recommended that on a go forward basis, the top level, the session that contains these other things, but for purposes of backwards compatibility, implementations must support dialogue as a top level item, blah blah blah. That that's fine. Like, in that case, you have your back compatibility, but we set it up so that we can have this sort of multilayer session.

[01:19:02] Daniel Petrie: I'm not

[01:19:03] Jonathan Rosenberg: opposed to that. I mean, you're just carrying forward the backward compatibility.

[01:19:06] Chris Wendt: And should that be scoped to, like, some of the more traditional scenarios so that, you know, we're not accommodate like, you're not trying to solve the problems we're solving now with the older way of doing it, everything going forward should use session or or this Yes. So

[01:19:26] Jonathan Rosenberg: you don't have to be that's what I'm saying. From an ITF perspective, assuming there's back compatibility, you you don't actually have to make a hard must on this. That's why I'm saying if you introduce session, then you say it's recommended, which is a switcher. Right? That for go forward, new VCOMs use session. It doesn't even have to be required, but you're basically giving that guidance. So I'm I'm suggesting I'm basically saying yes, Chris. Like, not at much strength, but it should strength. You just use session on a go forward basis.

[01:19:53] Chris Wendt: And and I was just trying to prevent the situation where you have two different ways to do it, you know, one with session, one without Well, you would. That's the point. You you you would like

[01:20:04] Daniel Petrie: but But it's it's not a big lift. Right? Yeah. It's because it's it's basically you recur you have to you know, what you're adding here is recursion. Right? We we're adding the ability to have this recursion in in the hierarchy. And to do that, we have to have the session object.

[01:20:24] Thomas McCarthy-Howe: Yeah. And I I think from my perspective, there is definitely times and places where you would have a VCOM that doesn't have a session. Right? So for instance, I was trying to share data that, across a network boundary and that data is in the attachment side, right, there is no there's no issue of of of dialogues anyways because it's an attachment share.

[01:20:49] Jonathan Rosenberg: Well, what's the use case for that? I mean, like

[01:20:52] Thomas McCarthy-Howe: For permission for governance for governance. So, like, I'm I'm about to process the VCOM. What's

[01:20:58] Daniel Petrie: what's the permission? I mean, if there's no conversation, what's

[01:21:01] Thomas McCarthy-Howe: what's the permission? Oh, yeah. So yeah. So so the so this is actually a great one. So I'm looking for permission to process this VCon, and I've got a governance item governance system that's saying yes or no. You can process this VCon. What does it need? It needs the consent attachment. It needs a UUID to do that and nothing else. And so as I'm sharing that across the network, why would I give it to dialogue? Because that's not data minimization.

[01:21:25] Jonathan Rosenberg: Why would you use a vCon? I mean, a permission to just send the it's it's not a really good vCon

[01:21:29] Thomas McCarthy-Howe: Because because the vCon itself is the thing which is validating that you've got this consent, and it's got provenance and governance. So you so for instance, you imagine just imagine this for a second. And this is real. We got we have companies that are doing this now. So you you are a you have a vCon that you want to analyze or train a model on. K? I'm gonna train a model on this vCon. And inside the vCon are dialogues. There are sessions maybe. I think there should be, by the way. And there's attachments, and then there's there's analysis. But the question to answer is, can I train on this thing? And to train on that thing means can I look inside the vCon and see what the consent is and say, I have I do have consent? I do have lawful basis to do this. Yeah. There are systems that do that, and they're not in my not in my facility. There are systems that do that that aren't mine. And so when I give it to the system and say, can I do this? And the system says, yes. You can do this. What am I giving it? The the the the option that gives you the provenance and the authenticity and the integration into the transparency is that you redact the vCon to only provide that level of information it needs. In the redaction of that vCon, you're giving it what it needs, which is the consent but the consent is part of the context of the conversation, just as much as the just as much as the the words are. And so there are times and places where there aren't, and that's true for every single, top level object. Right? VCOMs don't have to have parties, don't have to have dialogues, don't have to have attachments or analyses. Right? There's cases for all of that. So I think there's a k time and place where there can't be anything in the media side, that's and that's fine because it answers the question, can it be backwards compatible? Of course, it can be. You add in a session. You don't have to withdraw what you had. And I think from from my perspective that and and, Jonathan, you put your finger on it. There are elements here which are not represented in the vCon that need to be. One is session, One is event. Those are the two major things that I see that are from a philosophical standpoint. Event being a thing which happened in time, a signal. Right? A singularity. That's important. And the importance of being able to, like, take take this group of of of conversations as part of a a larger session.

[01:23:56] Daniel Petrie: Yeah. I mean, just to push back away, there is the concept of session. There is the concept of events. It's just what what Jonathan is suggesting is a better hierarchy for those, you know, in

[01:24:06] Thomas McCarthy-Howe: Yeah. But not for but not first class. Right? They're not they're not first class event. I'm not sure that that events are, but I think session should be, actually. That seems like it's a a first

[01:24:15] Jonathan Rosenberg: class event. I I'm still I'm I still don't quite get like, I'm not disagreeing with you. I I'm not sure I see the use case, but I'm I don't know that it matters for this purpose of this conversation. Like, if so I I've I've exceeded the point. I've ceded the point to Dan. Fine. I I you know, I think we can possibly maintain backward compatibility, or we should be able to maintain backward compatibility. We just make the you know, session. It does not have to be the top level object. And and then given that, like, there you go. K. I think it's I'm

[01:24:42] Thomas McCarthy-Howe: proud of that too.

[01:24:43] Daniel Petrie: Yeah. Yeah. So Session.

[01:24:44] Chris Wendt: Were scoping the backward compatibility on how we reference dialogues more than

[01:24:49] Daniel Petrie: We we we are. Holistically.

[01:24:51] Chris Wendt: We don't wanna overcomplicate it. I mean, backwards compatibility is a is a a nice goal to accommodate. But as a working group, we also need to have consensus on what we wanna do with Vicon going forward as well. Mhmm.

[01:25:05] Daniel Petrie: I I I just I just don't wanna blow up what we have already. That's that's I think that my main concern is the, you know, the upper compatibility. So just to poke at this a little more and make sure I understand things so that I have something to roll with here. We can have an array of sessions, I assume, in in in the top level, and sessions can have an array of sessions.

[01:25:26] Jonathan Rosenberg: I hadn't thought about an array at the top level, but maybe. I I guess I guess I can yeah. I guess why not? But, yes, sessions can contain sessions, events, and dialogues. Yeah.

[01:25:36] Daniel Petrie: Right. I mean, we we we do that today. Right? We already have, you know, multiple sessions. You know, we don't call them that, but we conceptually have multiple sessions at top level already in or in in in in in the arrays. And so I I think, you know, to to support that with this new hierarchy, I think Yeah. I I mean, I haven't thought this through. I'm just Yeah. Talking out loud.

[01:25:57] Jonathan Rosenberg: Me neither. So let let me I'm gonna make a very specific proposal, by the way, like is, like thank goodness I'm unemployed. So my my pro in, like, in something measured in days, like, don't work on it today, I can do, like, a three to four pager, like, not a detailed spec. Like but it it represents this information model. It gives you a couple example use cases that we can have something to because all I've done is talk about it, and we don't have anything in writing to look at. So I would be happy to do that. And then if that looks like, okay. That makes sense, then I could submit it as a PR against the document, which will obviously be a much larger change. But the main thing to look at is, like, you know, I will go through and look at the various identifiers and mappings and make sure, like, in this this this sketch, whatever that it it looks like it maps out. But that that's I

[01:26:45] Daniel Petrie: I I'm I'm happy to redo the draft. I think I just you know, I I think just I need a little time to think through the details of this and then make sure that we we've identified all the issues and and things, you know, like, like I said, you know, like, just thinking out what are are these arrays? Are they arrays of arrays?

[01:27:05] Jonathan Rosenberg: Yeah.

[01:27:05] Daniel Petrie: And or or or whether it's a a tree of arrays and and things like that. So I'm I'm I'm happy to update the the document. I just I need I you know, I think that discussion document is is a great thing to to do. And and, you know, do we have another meeting in a in a few weeks or a month to to discuss that?

[01:27:29] Thomas McCarthy-Howe: I I would like to. Yeah. Yeah. Would like to.

[01:27:33] Scott Godin: Are we opposed to versioning the schema if you can't be backwards compatible?

[01:27:38] Jonathan Rosenberg: It already is. Yeah.

[01:27:40] Daniel Petrie: Yeah. I mean, it it you know, it yeah. So we what we the version goes away. Right? The idea was that we define the the the schema and that we then create schema extensions or or whatever to to extend that. And that we we we had this big discussion on, you know, should we have versioning in there? And I was strongly encouraged that we don't.

[01:28:05] Jonathan Rosenberg: But you you sort of do. Wait. Wait. Hang on. Just to be clear, you do in that forget not till after RFC, it goes away. But prior, there is some field in there.

[01:28:13] Daniel Petrie: It's like just the

[01:28:14] Jonathan Rosenberg: on ETF draft.

[01:28:15] Daniel Petrie: Yeah. Exactly.

[01:28:16] Jonathan Rosenberg: And that would

[01:28:16] Daniel Petrie: Alright. It's not it's not the draft number. It just it coincided in in some cases or whatever. But but yeah. So the the there there is a temporary version that is supposed to go away when we get get the RFC. It it it's already named as deprecated, but it's useful in in the short term for for changes like this.

[01:28:36] Thomas McCarthy-Howe: Interesting for something to be that deprecated that was never standardized.

[01:28:41] Jonathan Rosenberg: It's it's actually, I think it's a it's a clever hack for selling a what is a real common problem on on, like, long lived drafts. That would be a way to solve this problem by effectively having a schema version that goes away at RFC ing this if if this ends up being breaking. But I it probably can be done not breaking, but that's the

[01:29:04] Thomas McCarthy-Howe: That's the goal.

[01:29:04] Jonathan Rosenberg: In this discussion draft that I'll write, it's just exercise. I'll I'll give a shot at it too. But I think I think your suggestion, Dan, about it should should work.

[01:29:14] Daniel Petrie: Yeah. So, I mean, I I I think I I you know, just to, you know, kinda summarize what I'm think I think what I am understanding is is a direction is we take party history. We make it its own full fledged object called events or whatever. I and the name is not important, but we take party history out of the dialogue and make it appear to dialogues. Yes. And and then we create the introduce concept of of session. At top level, it's optional. It may contain, you know, the, you know, the five now five primary objects,

[01:29:51] Jonathan Rosenberg: which are

[01:29:51] Daniel Petrie: party events, attachments, dialogue, and analysis as well as child sessions,

[01:30:04] Jonathan Rosenberg: I think.

[01:30:07] Daniel Petrie: Yeah. That's the, you know, rough tree and and schema changes. You know, it's a lot of details into going into that stuff.

[01:30:16] Scott Godin: Now events and parties can be assigned to a session or a dialogue. Right?

[01:30:21] Daniel Petrie: Yeah. Here's a problem that will occur is we refer to dialogues, and we need to do this to re to, you know, not denormalize everything. We refer to dialogues by single index. Now we have multiple sets of indices of dialogues in our hierarchy. So we would have to say session ID and dialogue any place where we currently have

[01:30:52] Jonathan Rosenberg: Why isn't it by I never understood there's a lot by index in the document, and I never understood why it's by index as opposed to just by ID. So it's the way I would think about doing this is every object has an ID. This it's just a UUID or whatever. It's a it's a flat, you know, unique identifier. The session has one. The dialogue has one. Everything has one. You just refer to that, and then it covers everything. But but what why did why did you do the index version?

[01:31:19] Daniel Petrie: Because it yep. And it removes a level of indirection, right, or of right. Because the UUID, you you have to go find it. Right? Whereas an index, it's it's a it's a straight reference.

[01:31:35] Jonathan Rosenberg: Right. Yeah.

[01:31:37] Daniel Petrie: It's and there wasn't wasn't a need for it because we didn't,

[01:31:41] Jonathan Rosenberg: you know

[01:31:41] Daniel Petrie: because it was effectively a UUID within the scope of the v gun. Right? Right.

[01:31:47] Jonathan Lennox: But I I do feel like it makes things like production a lot harder because if you remove one dialogue, you have to rewrite every reference. Whereas if there's an ID, you can leave you can basically just remove one thing, and everything else stays unchanged.

[01:31:59] Jonathan Rosenberg: That's a really good point.

[01:32:00] Thomas McCarthy-Howe: That's also true. Yep. Yep.

[01:32:04] Jonathan Lennox: Yeah. I mean and these don't need to be full UIDs if they're just internal references inside the BCON. They can just be identifiers if

[01:32:10] Thomas McCarthy-Howe: you want. Yeah. And and and we yeah. It'll make it'll make tracking parties a lot easier too.

[01:32:19] Jonathan Rosenberg: Yeah. Right.

[01:32:23] Daniel Petrie: And then there's That

[01:32:24] Jonathan Rosenberg: is a breaking change, though. Yes. Yes.

[01:32:28] Daniel Petrie: Or or we have to score

[01:32:29] Thomas McCarthy-Howe: Clearly a breaking change. Yes.

[01:32:30] Daniel Petrie: That's weird. The other other another kinda issue that that you know, I'm just thinking out loud to hear again is do we have do we have parties just at the top level or in the the top level session? Or do we duplicate parties that are already in in you know, there's there's a denormalization issue there in in terms of you know, I I've got a session that's got these parties in it. I've got a session in that session that's got these parties in it. If I'm redefining party at each hierarchy level, you know, I'm I'm denormalizing. Or I I guess, you know, if we have UUIDs, then you don't you don't you can do it once. But, you know Yeah.

[01:33:24] Jonathan Rosenberg: Yeah. I would I would separate out, like, do we allow I I like the idea of party being its own object that has, like, the name and address, and all the stuff you have is great. And it has an ID that allows it to be referenced. So because we we wanna use parties as references in multiple ways. Right?

[01:33:44] Daniel Petrie: Right.

[01:33:45] Jonathan Rosenberg: So for sure, in a dialogue, we wanna be able to say, okay. These parties contributed

[01:33:50] Daniel Petrie: to this

[01:33:50] Jonathan Rosenberg: audio or and I or, you know, who who heard it? That's a list of parties. I think you're asking this the the one of the question once we decided party is by reference, which I think it really should be just as you have today, I think the question is, what what objects in the system can have parties in them? Dialogues clearly, events clearly. Do sessions have parties distinct from set from dialogues, I think, is the question.

[01:34:18] Daniel Petrie: Or or do we make a party only a top level object?

[01:34:22] Jonathan Rosenberg: No. I think but hold on. Let me go make let me go look at this schema. What I'm because I'm suggesting something this party is the list, and this party is the reference to parties. So just hold on a sec. So you have right now the top level right. So you have in the top level BCom has a list of parties. Right, Dan?

[01:34:41] Daniel Petrie: Right.

[01:34:41] Jonathan Rosenberg: Right? I'm saying keep that. And that is that's just a that's like that's just the list on the side. Great. To avoid duplicating it inside of each and every dialogue that references. So that's top.

[01:34:53] Daniel Petrie: Parties parties is not part of session.

[01:34:56] Jonathan Rosenberg: Reference part I'm saying there's a top level party that's the the object itself, and then there's a separate thing which is references those.

[01:35:04] Daniel Petrie: Yes. That's that's what I was try that's what I meant. Parties, the object, is a top level object only. Everywhere else, it's a reference.

[01:35:13] Jonathan Rosenberg: Yes. That's

[01:35:14] Daniel Petrie: right. In in any session cannot it does not contain parties.

[01:35:19] Jonathan Rosenberg: What has a reference to parties?

[01:35:20] Daniel Petrie: Yeah. It references parties. Yes.

[01:35:22] Thomas McCarthy-Howe: That's right.

[01:35:23] Jonathan Rosenberg: Yeah. Yeah. When when That's what's there now. Right? I mean Yes. Yes.

[01:35:27] Daniel Petrie: So I'm suggesting I I just you are introducing this recursive hierarchy, and I'm sorry. I'm just thinking through of

[01:35:33] Jonathan Rosenberg: Oh, I see. I see. Yeah. Yeah.

[01:35:35] Daniel Petrie: Like, denormalization problems. Right. Because what I said earlier is that that the session could contain all four of it or five parties, you know, events and and so on. What and what about and so events, do they belong to a session, or they belong to the VCon?

[01:35:52] Jonathan Rosenberg: I think they belong to a session. It's not obvious to me that you it would make sense at any other level.

[01:36:01] Thomas McCarthy-Howe: Okay.

[01:36:02] Scott Godin: I think they could belong to a dialogue as well.

[01:36:05] Jonathan Rosenberg: The events belong to a doc no. I I I guess, again, the way I thought about it is if we if we map to reality right? This this is why, like, the interesting action is it's a map. This is the real use case. It's to see how the generic objects work in the real world. And so I'm saying the simplest case of a two party call, that's one session. It could be one dialogue that has the full mixed audio, and it's two two parties, and the dialogue references the two parties. Right? Okay? A more complicated case of, like, a conference call with sidebars and what have you. I'm saying the the the the the real meaning of dialogue is it's a it's a stored piece of audio content shared with participants, and and it's an atomic object in that way. Right? It has a start. It has an end. It has the, you know, the the audio by reference or embedded. That that's the that's what it is. The I I don't I don't see why you would include the events in that because you're using the session to contain the events and the dialogues. You see what I'm saying? Like, I don't I don't see the

[01:37:16] Daniel Petrie: No. I I I agree. I think I think if we, you know, take party history out and have events in one place

[01:37:23] Jonathan Rosenberg: Yeah.

[01:37:23] Daniel Petrie: Not not in both.

[01:37:24] Jonathan Rosenberg: But but we should try it on for size. That's what I'm saying. The thought experiment I wanna do, you sort of have this in the appendix, but I just think it needs to be dramatically widened because the appendix doesn't cover in these conference cases, sidebar, AI agents, sub agents. I'm gonna I'm gonna I'm gonna stick in, like, 10 of those. It's all super high level, like, not not a spec level, just just in a a proof of coverage that the model can be used to map each of these different things at a high level, and then we'll see what it looks like. And then and then you could tell, well, we can't cover this case without an event being in a dialogue, whatever we that would pop out of such an exercise.

[01:38:00] Daniel Petrie: Yeah. Yeah. Yeah. Alright. I think I think we've got a plan here. I I guess my you know, I'll just, you know, bring up, you know, perhaps the obvious is that, you know, I had hoped that we would be ready for work group last call last call before the next meeting. You know, with this change, it's not.

[01:38:23] Thomas McCarthy-Howe: It's not. I just it's not

[01:38:25] Daniel Petrie: gonna be ready. You we may be near it, but it it's just that it's you know,

[01:38:32] Jonathan Rosenberg: it's I I think it's worth it, and that's what I'm trying to say. Getting this thing genericized so that it's usable for AI and make sure because what you wanna do, to be honest, is you like, once we have a sketch of this, you take the Burkhal strap, and that turns into an extension spec.

[01:38:48] Thomas McCarthy-Howe: Right.

[01:38:48] Jonathan Rosenberg: Correct. It goes separately, by the way. It goes separately. But you want proof of of durability. Like, you don't wanna issue the the course back to I e s g just to find out that we needed a change because of some fundamental disconnect in the model. So once you have proof of, like, proof of extensibility for the AI agent use cases, draft done, then you can take the course back and get it go to ISG. And I think that, yes, that'll be a delay, and I think it's super well worth it because you you hear my exuberance for what I think is the killer use case for this econ. It it you'll need the biggest room in the IETF for the meeting in the next meeting as opposed to the smallest. Like, I mean, this is the thing everyone cares about. That's that's sort of why I'm saying I think it's worth the delay.

[01:39:33] Thomas McCarthy-Howe: Yep. I think you're right about that. Yeah.

[01:39:37] Daniel Petrie: I I said I I was hoping they get this.

[01:39:40] Jonathan Rosenberg: I know you wanna be done there.

[01:39:41] Daniel Petrie: You were worth the I mean, I I I I'm I'm okay to get that, but I was hoping to get this nailed before the room became that big Well when we then

[01:39:49] Jonathan Rosenberg: I don't think you should. Paralyzed. Think you want that.

[01:39:51] Jonathan Lennox: No. What if we

[01:39:52] Jonathan Rosenberg: miss something? Like, I mean you know

[01:39:54] Daniel Petrie: what I'm saying? No. I I Yeah.

[01:39:55] Thomas McCarthy-Howe: Right. Well well, John yeah. Jonathan, just just for one one point of of of of level here, I know of two independent implementations of Burkhal's back draft with Vecons today built against Anthropic and OpenAI.

[01:40:11] Jonathan Rosenberg: Really? With what I mean, it's not even spec because the Burkholz draft doesn't do have anything to do with Vecon at the moment.

[01:40:18] Thomas McCarthy-Howe: That's right. Well, there's an extent. I well, and in in Beijing, Hank and I put in a draft extension for that. We we haven't adopted it in the working group,

[01:40:31] Jonathan Rosenberg: but it's Okay. But there's an individual draft for this, you're saying?

[01:40:33] Thomas McCarthy-Howe: Yes. Yeah.

[01:40:34] Jonathan Rosenberg: Oh, what what's the is it a is it named Burke?

[01:40:37] Thomas McCarthy-Howe: Burke Holt or how draft it should be in the working group.

[01:40:46] Jonathan Rosenberg: I see Burke Holt here. Alright. My Google doesn't find it. Sorry.

[01:40:51] Thomas McCarthy-Howe: K. I'll I'll I'll forward it to the group. Okay.

[01:40:58] Jonathan Rosenberg: Anyway, I'm willing to work on this, like, because I got time.

[01:41:00] Thomas McCarthy-Howe: I want you working on it.

[01:41:02] Jonathan Rosenberg: And I will I will have this discussion draft in something in in days kinda category that there's I have a holiday at the end of this week, so it might leak into next week. But but it's that kind of thing. This is not a wait for San Francisco. I I will certainly have this draft, and I'm willing to contribute time on any changes on the new draft too.

[01:41:19] Daniel Petrie: Okay. Should we pick a time for the next discussion after that comes out and people have a day or two to read it? Or or

[01:41:26] Jonathan Rosenberg: At least. Yeah. Yeah. Yeah. So

[01:41:30] Thomas McCarthy-Howe: It's called by the way, it's called draft-howe v con agent session.

[01:41:35] Jonathan Rosenberg: Oh, I see. Draft-howe v con. I got it. Thank you. I'll take a look at that here.

[01:41:45] Thomas McCarthy-Howe: Just for your note.

[01:41:46] Chris Wendt: So just to be clear, we're talking about, like, weeks time, and then we schedule another interim.

[01:41:53] Jonathan Rosenberg: Yeah. I'm suggesting that wait till the doc comes out. Yep. And then and Dan can look it and decide if he also wants to do a revision of the course spec first, or we should then have a just have a and then we'll decide, like, oh, in one week from hence, one of the session. I'd rather the draft a draft come out before we Yeah. Yeah. No. Schedule then. No. This is be all of us anyway. Right.

[01:42:17] Daniel Petrie: But I just I I it might be easier. We're all together to nail down a time now.

[01:42:22] Jonathan Rosenberg: If you want Dan, if you wanna do that, I'm good. I'm good with that.

[01:42:26] Daniel Petrie: I I mean, I I'm I I will be there regardless. I

[01:42:30] Jonathan Rosenberg: Alright. Let's I'm the least constrained. So, like, when you you wanna pick something for, I'd say, no less than two weeks, but but two weeks maybe, just to give people time to read any draft and for me to have a few days to write it. So

[01:42:42] Thomas McCarthy-Howe: That hits us on the twenty third, Wednesday?

[01:42:46] Daniel Petrie: I'm sorry, Tom. Did you say

[01:42:48] Thomas McCarthy-Howe: Yeah. Twenty third is two weeks away.

[01:42:50] Daniel Petrie: Okay.

[01:42:51] Thomas McCarthy-Howe: And same time?

[01:42:54] Chris Wendt: Can can we make it the twenty fourth?

[01:42:56] Thomas McCarthy-Howe: Only for you.

[01:42:58] Chris Wendt: Thank you. I could do the same time, ten to twelve.

[01:43:05] Daniel Petrie: Cool. On the twenty fourth. Eastern.

[01:43:08] Scott Godin: Works for me.

[01:43:09] Jonathan Rosenberg: Sorry. Which one are we twenty fourth, you're saying?

[01:43:12] Daniel Petrie: Yeah. Twenty fourth is a hundred eastern time.

[01:43:15] Jonathan Rosenberg: Yeah. What do we say? 10:10 to noon? Yep. Works for me.

[01:43:20] Chris Wendt: Okay. I'll schedule that.

[01:43:24] Daniel Petrie: Awesome.

[01:43:25] Jonathan Rosenberg: Alright. Sounds good.

[01:43:27] Daniel Petrie: That way so It it That

[01:43:28] Chris Wendt: was a good discussion. Did you you had some other slides, Dan. I don't know if you

[01:43:33] Daniel Petrie: Yeah. Just a couple last few things. I just like, one more slide, basically. Go forward. Next slide. Next slide. So they just baked me up. So, basically, on the to do, other than, you know, solving this recording set concept thing, right, which is, I guess, turning into a bigger deal. Basically, three examples are missing that I think need need to be there. So, you know, now there obviously, there are more examples that we'll need, but that's kinda where I felt things things were that you know, it's just that we have this this, you know, this session concept, whether it's, you know, how how we go forward with that. Needed to be solved and and just a few examples missing. I think everything else was pretty well nailed down. You know, that, of course, will change with the with the scheme of change.

[01:44:27] Jonathan Rosenberg: Yeah. I I think that, again, the transfer I'll I'll put this as an example to drive. Think the transfer is a great use case for having this more concrete notion of a session because then we can treat the three parts. Right? The the the first call, the consult, and the and the, you know, the, you know, the if you do a blind and whatever, the the blind portion, your each independent sessions. And then all you're saying is there's events which then reference those things. Okay. I initiated a consultative transfer. That's an event, and here's a pointer to the session that was that thing. That then allows you to map all this out well. I think it's a

[01:45:04] Daniel Petrie: So you're you're suggesting that transfer would turn into an event rather than a Yeah.

[01:45:09] Jonathan Rosenberg: Just like this that's how all the rest of

[01:45:11] Daniel Petrie: them are.

[01:45:11] Jonathan Rosenberg: Like, hold Yeah. Comp, but they're all yeah.

[01:45:13] Daniel Petrie: No. It's yeah. It's yeah. Okay.

[01:45:15] Jonathan Rosenberg: Let me let me let me write it up. Just I wanna I want some time to go think about it and make sure and but I I that's my gut feeling is that all, it all solid. But that's what this exercise of going through all these use cases and just mapping the data model into the use case. It will will help pop all this out.

[01:45:30] Scott Godin: Okay. I think we could benefit from an example of something like this call, you know, a conference call with Yeah. Potential sidebars since it keeps coming up

[01:45:41] Jonathan Rosenberg: and That's what I'm saying. Yeah.

[01:45:42] Scott Godin: The chat messages that are sent

[01:45:43] Jonathan Rosenberg: back and forth. I'm I'm gonna do, like, 10 examples, like

[01:45:46] Daniel Petrie: a Okay. Yeah. I mean, those those I I can kind of, extrapolate my myself. What I am less capable of extrapolating is, you know, what is it that people want in the AI session. Right?

[01:45:58] Jonathan Rosenberg: Right. Yeah. Yeah.

[01:45:59] Daniel Petrie: That's that's where that's the example I'd I'd love to

[01:46:03] Scott Godin: Yeah. Yeah.

[01:46:03] Daniel Petrie: Yeah. To to look at.

[01:46:05] Jonathan Rosenberg: Yep. Sounds I'll put I'll put in a couple of those too, and I'm sure that'll spur on some discussion as well. Okay.

[01:46:12] Daniel Petrie: And, yeah, maybe we can get Hank to join us.

[01:46:16] Jonathan Rosenberg: Yeah. That would be good too.

[01:46:17] Daniel Petrie: Yeah. Yeah.

[01:46:18] Scott Godin: Yeah. Jonathan, I was asking the chat. What is this protocols draft you keep referring to?

[01:46:23] Jonathan Rosenberg: Which protocols draft?

[01:46:24] Thomas McCarthy-Howe: Okay. So there's there's two. One's called a VAC, which is the verified agent conversation. Put it out. And then the other one is agent session, which is an example of how that could be used on a VCon.

[01:46:45] Jonathan Rosenberg: Yeah. Just just post them in the chat here. I I just Yep. We'll be. Alright. So here is the

[01:46:53] Scott Godin: Oh, so you weren't saying protocols. You were saying someone's name.

[01:46:58] Thomas McCarthy-Howe: Bert. Bertold.

[01:47:00] Daniel Petrie: Okay. Yeah. Hey. Hey. Hey. Bert Holt is the is the

[01:47:04] Scott Godin: author. Gotcha.

[01:47:05] Jonathan Rosenberg: Oh, yeah. Yeah. Yeah. Bert Holt's not protocols. Yeah.

[01:47:09] Scott Godin: That's why we've heard protocols.

[01:47:12] Jonathan Rosenberg: Now that you said it yeah. Yeah. I see how you could you'd have just just heard heard that. That. Alright. So I just posted into the

[01:47:19] Daniel Petrie: It it it's just the Jonathan's, you know, New Jersey accent.

[01:47:23] Jonathan Rosenberg: Yeah. I'm a New Yorker anyway. No one's from New Jersey originally anyway. I'm either Boston or

[01:47:29] Thomas McCarthy-Howe: Is there a difference?

[01:47:31] Jonathan Rosenberg: No. There's No. Not really. You know, I had Right. I had coworkers at Five nine who were non Americans, and they didn't act they actually thought New Jersey was a part of New York. Like, it was a surprise to them.

[01:47:42] Daniel Petrie: It is, isn't it?

[01:47:43] Thomas McCarthy-Howe: It kinda Oh,

[01:47:43] Jonathan Rosenberg: it is. The least, it's a very reasonable thing to think.

[01:47:47] Chris Wendt: Well, there's the New York side, and then there's the Philly side. So

[01:47:52] Jonathan Rosenberg: That's true. Yeah. But it's much more I think the New York side extends way deeper into New Jersey than the Philly side. Yeah. That about

[01:47:59] Chris Wendt: Boston has these problems. Eagles versus the Giants. Yeah. Yeah. Yeah. Versus the Phillies. Yeah.

[01:48:06] Jonathan Rosenberg: Yeah. Exactly. And and now that I split my time between Boston and New Jersey, it's all, like, what team do you root for? I can't even talk

[01:48:12] Thomas McCarthy-Howe: about this. It's dangerous. Boston's. Root for Boston. I'll help you with that there, dude. Even when you

[01:48:18] Jonathan Rosenberg: In Boston, it matters more to root for Boston. They're like

[01:48:21] Daniel Petrie: It does. Yeah.

[01:48:22] Jonathan Rosenberg: Yeah. Yeah. And I live right by TD Garden, by the way. My place is, like, literally around the corner. And so when people come out of, like, a Bruins game and they say, like, go crazy. I mean, oh my god. It's like dangerous almost. Yeah. Especially if they lose. Alright, guys. Thank you for the conversation. Think this is good.

[01:48:39] Chris Wendt: Yeah. It was very good. Thanks for volunteering for the work. It was a good discussion. I'll try to collect some minutes, and I'll schedule the next interim. Looking forward to it.

[01:48:51] Jonathan Rosenberg: Sounds good. Awesome. Thanks, Drew. Cheers.

[01:48:53] Chris Wendt: Cool. Alright. Take care.

[01:48:54] Thomas McCarthy-Howe: Thank you.

[01:48:55] Scott Godin: Bye. Bye.